ID: Q39514
4.01 4.10 5.00 | 4.10 5.00
MS-DOS | OS/2
kbtool kbfixlist kbbuglist
The information in this article applies to:
An 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.
The 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.
To work around this problem, perform one of the following two steps:
-or-
Microsoft 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.
The following code demonstrates the problem.
C 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)
END
C
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
buglist5.00 fixlist5.10
KBCategory: kbtool kbfixlist kbbuglist
KBSubCategory: FLIss
Solution Type : kbfix
Last Reviewed: April 30, 1998