FIX: F1001 regMD.c, Line 338; Huge Array as Array IndexLast reviewed: September 16, 1997Article ID: Q86062 |
4.00 4.01 4.10 5.00 5.10 | 4.10 5.00 5.10
MS-DOS | OS/2kbtool kbfixlist kbbuglist kberrmsg kbcode The information in this article applies to:
SYMPTOMSUsing 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 ErrorThe 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) RESOLUTIONAssign the value of the huge index array to a temporary variable and use this variable in the concatenation statement.
STATUSMicrosoft 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.
MORE INFORMATION
Sample Code 1The 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 2The 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 reference words: 4.00 4.10 5.00 5.10 4.10 5.00 5.10
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |