FIX: Optimization Problem, Assignment Not Made, Write FailsLast reviewed: September 11, 1997Article ID: Q39514 |
4.01 4.10 5.00 | 4.10 5.00
MS-DOS | OS/2kbtool kbfixlist kbbuglist The information in this article applies to:
SYMPTOMSAn application copies an incorrect value from an array in a COMMON block. An element of an array specified as an argument to a subprogram is the destination for the copied value.
CAUSEThe application passes an array to a subprogram through an argument list and shares another array with the subprogram through a COMMON block. The compile command line includes the /Od compile option switch to disable optimizations.
RESOLUTIONTo work around this problem, perform one of the following two steps:
STATUSMicrosoft has confirmed this to be a problem in FORTRAN versions 4.01, 4.1, and 5.0 for MS-DOS and versions 4.1 and 5.0 for OS/2. This problem was corrected in FORTRAN version 5.1.
MORE INFORMATIONThe following code demonstrates the problem.
Sample CodeC Compiler options needed: None
IMPLICIT DOUBLE PRECISION (A-H, O-Z) DIMENSION TMP(5000, 1) COMMON /BAD/ RBAD(3, 3) RBAD(1, 1) = 1 CALL TRY1(TMP) WRITE(0, *) TMP(1, 1) ENDC SUBROUTINE TRY1(TMP) IMPLICIT DOUBLE PRECISION (A-H, O-Z) DIMENSION TMP(5000, 1) COMMON /BAD/ RBAD(3, 3) I = 1 K = 1 TMP(I, K) = RBAD(K, I) RETURN END |
Additional reference words: 4.01 4.10 5.00 buglist4.01 buglist4.10
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |