Microsoft KB Archive/87886

= DOCERR: Code in Manual Incorrect: COMMON and EQUIVALENCE =

Article ID: 87886

Article Last Modified on 12/1/2003

-

APPLIES TO


 * Microsoft FORTRAN Compiler 5.0
 * Microsoft FORTRAN Compiler 5.1
 * Microsoft FORTRAN Compiler 5.0
 * Microsoft FORTRAN Compiler 5.1

-



This article was previously published under Q87886



SYMPTOMS
When compiled with Microsoft FORTRAN version 5.0 or 5.1 under MS-DOS or OS/2, the sample program given on page 132 of the &quot;Microsoft FORTRAN Advanced Topics&quot; version 5.0 manual and page 105 of the &quot;Microsoft FORTRAN Advanced Topics&quot; version 5.1 manual generates the following error:

error F2318: A, B : EQUIVALENCE: in different common blocks



CAUSE
The version 5.1 FORTRAN &quot;Reference Manual&quot; states:

An EQUIVALENCE statement cannot share memory between two different common blocks or between elements of the same common block.

The error F2318 is generated in this case because the sample code attempts to EQUIVALENCE the arrays A and B that belong to two different COMMON blocks.



RESOLUTION
To avoid this error, compile the code after removing either A or B or both the arrays from COMMON blocks.



MORE INFORMATION
The following code, which is incorrect, is from the &quot;Microsoft FORTRAN Advanced Topics&quot; manual: integer a(10,20), b(20,30) common /cba/a, /cbb/b equivalence (a(10,20), b(1,1)) end The following code illustrates the correct usage of EQUIVALENCE statement and common blocks: integer a(10,20), b(20,30) common /cba/ a     equivalence (a(10,20), b(1,1)) end

Additional query words: 5.00 nofps 5.10

Keywords: KB87886

-

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

© Microsoft Corporation. All rights reserved.