FIX: INDEX Function w/ Concatenation Yields ErrorsLast reviewed: September 16, 1997Article ID: Q85302 |
4.00 4.01 4.10 5.00 5.10 | 4.10 5.00 5.10
MS-DOS | OS/2kbprg kbbuglist kbfixlist kbcode The information in this article applies to:
SYMPTOMSA program compiled with Microsoft FORTRAN version 4.0, 4.01, 4.1, 5.0, or 5.1 that contains the INDEX intrinsic function can generate incorrect results or hang the machine while running under MS-DOS. Under similar circumstances, the program may produce a protection violation while running under OS/2. This problem may occur when one of the parameters to the INDEX intrinsic function contains a string concatenation with a substring that is indexed with a variable. Changing the compiler options has no effect.
RESOLUTIONTo resolve the problem, use a temporary string variable for the string concatenation prior to the INDEX call.
STATUSMicrosoft has confirmed this to be a problem in Microsoft FORTRAN versions 4.0, 4.01, 4.1, 5.0, and 5.1. This problem was corrected in FORTRAN PowerStation, version 1.9.
MORE INFORMATION
Sample Code 1The following code reproduces the problem:
character*1 a, b a = '1' b = 'b' L = 1 j = index('ab'//a(1:L),b) !variable substring concatenation print*, j end Sample Code 2The following code does not cause the problem:
character*1 a, b character*10 c a = '1' b = 'b' L = 1 c = 'ab'//a(1:L) !variable stores substring concatenation. j = index(c,b) !variable used in INDEX statement. print*, j end |
Additional reference words: 4.00 4.10 5.00 5.10 buglist4.00 buglist4.01
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |