DOCERR: External Data and Public Variables in FORTRAN

Last reviewed: July 18, 1995
Article ID: Q34370
The information in this article applies to:
  • Microsoft FORTRAN for MS-DOS and OS/2, versions 4.1, 5.0, and 5.1

SUMMARY

A FORTRAN application cannot declare individual variables to be public. A COMMON block is the only method to declare a publicly accessible variable.

In a FORTRAN program, to declare a variable or set of variables to be public, place them in a COMMON block. Because COMMON blocks are public, an application can access the variables through the COMMON block, but not individually. For example, if a FORTRAN application declares a COMMON block, an application developed in C can access the data by declaring an external structure that contains the same data.

MORE INFORMATION

Section 9.3, "External Data," of the "Microsoft Mixed-Language Programming Guide" and Section 5.3.3, "External Data," of the Microsoft FORTRAN "Advanced Topics" manual for version 5.0/5.1 discuss the possibilities for shared data. The documentation includes the following statements:

   You can always share data between two languages by passing parameters.
   In the case of local variables and all BASIC variables, passing
   parameters is the only convenient way to share data.

   However, C, FORTRAN, and Pascal routines can access data directly that
   are external.

A FORTRAN program can access variables declared external in code developed in C or Pascal; however, a FORTRAN program cannot declare a variable to be public without placing it into a COMMON block. The example on Page 131 of the "Mixed-Language Programming Guide" and on Pages 109-110 of the FORTRAN "Advanced Topics" manual incorrectly show code developed in C and in Pascal accessing a public variable declared in a FORTRAN routine. In FORTRAN, all variable names are local; only the names of COMMON blocks and subprograms are public.

This has been corrected in the FORTRAN PowerStation documentation, in MIXED_C.WRI.


Additional reference words: 4.10 5.00 5.10
KBCategory: kbprg kbdocerr
KBSubcategory: FORTLngIss


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: July 18, 1995
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.