FORTRAN Reference Manual

Mixed-Language Programming
FORTRAN Reference Manual528615-001
13-22
The COBOLEXT Files
The COBOLEXT Files
Every NonStop system in which the FORTRAN compiler is installed, also includes files
named COBOLEX0, COBOLEX1, and COBOLEXT in the same subvolume as the
FORTRAN compiler (usually this is the $SYSTEM.SYSTEM subvolume). These files
are also used by the COBOL85 compiler.
The compilers use these files when translating references to Guardian procedures.
They are object files and contain, in effect, compiled versions of the source files
EXTDECS0, EXTDECS1, and EXTDECS, respectively, that are also available in the
$SYSTEM.SYSTEM subvolume of every NonStop system.
If the FORTRAN compiler encounters a CALL statement or function reference to a
procedure that was named in a GUARDIAN directive, the compiler consults the file
named COBOLEXT in the same subvolume as the compiler for information about the
procedure and its parameters, so that the compiler can generate the correct object
code for invoking the procedure. The file named COBOLEXT corresponds to the
EXTDECS file, which contains declarations of Guardian procedures as of two major
releases preceding the current release. If you want to use a more recent version such
as COBOLEX1 or COBOLEX0 (such as using a Guardian procedure that was added in
the latest or previous major release), you must use the CONSULT directive, rather than
the GUARDIAN directive, to reference one of those files by name.
Compatibility With the Old Form of Procedure Calls Not Written
in FORTRAN
Existing programs that use the old form for procedure calls that are not written in
FORTRAN will continue to compile and execute correctly unless you modify the
programs to use extended data space (that is, to use EXTENDEDREF,
LARGECOMMON, or LARGEDATA directives), or unless you declare the procedures
that are not written in FORTRAN using GUARDIAN and CONSULT directives.
Because the new calling sequence is easier to code and read, you should add
GUARDIAN and CONSULT directives and update the calling sequences if you
modify existing programs. It is not essential that you do this, however, except in a
few specific cases:
You must add GUARDIAN and CONSULT directives and update the calling
sequences if you modify the programs to use EXTENDEDREF, LARGECOMMON,
or LARGEDATA directives.
You must use the new calling sequence for any procedure not written in FORTRAN
that you declare in a GUARDIAN or CONSULT directive, even if the program does not
use EXTENDEDREF, LARGECOMMON, or LARGEDATA directives.
To convert existing procedure calls that are not written in FORTRAN to the new form
for procedure calls not written in FORTRAN, follow these steps:
1. Delete any variable or extensible mask word (or words) at the end of the argument
list.