Microsoft KB Archive/86062

= FIX: F1001 regMD.c, Line 338; Huge Array as Array Index =

Article ID: 86062

Article Last Modified on 12/1/2003

-

APPLIES TO


 * Microsoft FORTRAN Compiler 4.0
 * Microsoft FORTRAN Compiler 4.01
 * Microsoft FORTRAN Compiler 4.1
 * Microsoft FORTRAN Compiler 5.0
 * Microsoft FORTRAN Compiler 5.1
 * Microsoft FORTRAN Compiler 4.1
 * Microsoft FORTRAN Compiler 5.0
 * Microsoft FORTRAN Compiler 5.1

-



This article was previously published under Q86062



SYMPTOMS
Using the Microsoft FORTRAN compiler versions 4.0, 4.01, 4.1, 5.0, and 5.1 under MS-DOS and versions 4.1, 5.0, and 5.1 under OS/2 to compile programs that contain concatenations of CHARACTER arrays where the array elements are specified using an element of a huge INTEGER array can generate the following error:

fatal error F1001: Internal Compiler Error

The compiler file varies as follows:

Version 5.1: (compiler file '@(#)regMD.c:1.9', line 338)

Version 5.0: (compiler file '@(#)regMD.c:1.8', line 338)

Versions 4.01 and 4.1: (compiler file '@(#)regMD.c:1.79', line 291)

Version 4.0: (compiler file '@(#)regMD.c:1.74', line 1304)



RESOLUTION
Assign the value of the huge index array to a temporary variable and use this variable in the concatenation statement.



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



Sample Code 1
The following code reproduces the problem: character*2 c     character*1 c1(1), c2(1) integer*2  index(32769,1)

c = c1(index(i,k))//c2(index(i,k)) end

Sample Code 2
The following code corrects the problem: character*2 c     character*1 c1(1), c2(1) integer*2  index(32769,1), temp

temp = index(i,k)         ! temporary variable temp c = c1(temp)//c2(temp)    ! eliminates the error end

Additional query words: 4.00 4.10 5.00 5.10

Keywords: kbfix KB86062

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.