FIX: F1001 Error Compiling 2 Gigabyte Array with -Zi (111283)



The information in this article applies to:

  • Microsoft FORTRAN PowerStation for MS-DOS 1.0
  • Microsoft FORTRAN PowerStation for MS-DOS 1.0a
  • Microsoft Fortran Powerstation 32 for Windows NT 1.0

This article was previously published under Q111283

SYMPTOMS

Compiling a FORTRAN source file with -Zi that contains a 2 gigabyte (GB) array (or larger) will produce the following error under Windows NT:
fatal error F1001: INTERNAL COMPILER ERROR
(compiler file '@(#)p2symtab.c:1.89', line 1601)
Under MS-DOS, the following error may be generated:
fatal error F1001: INTERNAL COMPILER ERROR
(compiler file '@(#)p2symtab.c:1.89', line 1390)

CAUSE

Although a Windows NT application has a 4 GB address space, 2 of these 4 GB are reserved for system memory. Because a 2 GB array leaves no room for application code, this particular condition was not tested.

RESOLUTION

Reduce the size of the array.

NOTE: Linking a Fortran object module that contains an array 2 gigabytes (or greater) will correctly cause the following warning message under Fortran PowerStation 4.0:
:warning LNK4084: total image size -2147422208 exceeds max
(268435456); image may not run

STATUS

Microsoft has confirmed this to be a problem in FORTRAN PowerStation 32 for Windows NT version 1.0 and MS-DOS version 1.0 and 1.0a. This problem was corrected in FORTRAN PowerStation 32, version 4.0.

MORE INFORMATION

The following sample illustrates the problem:

Sample Code

c Compile options needed: -Zi
c
       integer*2 n(1073741824)
       n(1) = 1
       end
				

Modification Type:MajorLast Reviewed:10/17/2003
Keywords:kbbug kbCompiler kberrmsg kbfix KB111283