Accessing Mixed-Language, External Variables in FORTRAN (60076)
The information in this article applies to:
- Microsoft FORTRAN Compiler for MS-DOS 4.1
- Microsoft FORTRAN Compiler for MS-DOS 5.0
- Microsoft FORTRAN Compiler for MS-DOS 5.1
- Microsoft FORTRAN compiler for OS/2 4.1
- Microsoft FORTRAN compiler for OS/2 5.0
- Microsoft FORTRAN compiler for OS/2 5.1
This article was previously published under Q60076 SUMMARY
The following is a sample C and FORTRAN mixed-language program
demonstrating how to access external variables from within Microsoft
FORTRAN.
FORTRAN Code
SUBROUTINE ASSIGN
INTEGER*2 X [EXTERN, ALIAS:'_extrn']
X = 2
END
C Code
#include <stdio.h>
extern void fortran assign(void);
int extrn;
main()
{
extrn = 5;
printf("Before call to FORTRAN: %d\n",extrn);
assign();
printf(" After call to FORTRAN: %d\n",extrn);
}
MORE INFORMATION
To use global variables exported from another language in FORTRAN, the
EXTERN attribute must be used. EXTERN tells the FORTRAN compiler that
the variable is not local to the FORTRAN subroutine or function.
Variables declared EXTERN will instead be resolved by the linker. You
can use the ALIAS attribute to assign a different name to the imported
variable; in this example, it is required because the underscore
prepended by the C compiler is invalid in the FORTRAN naming
convention.
No modifications should be necessary for the exporting module to allow
FORTRAN to import the global variable(s).
Modification Type: | Major | Last Reviewed: | 12/1/2003 |
---|
Keywords: | KB60076 |
---|
|