FORTRAN Reference Manual

Program Compilation
FORTRAN Reference Manual528615-001
9-24
Binding Programs That Use Extended Memory
LARGECOMMON directive in every compilation that includes the same common
block.
Include an EXTENDEDREF compiler directive at the beginning of every
compilation that does not include a LARGECOMMON directive or a LARGEDATA
directive.
Use the LARGESTACK directive (or the BIND command SET LARGESTACK) if
the extended stack area is too small.
FORTRAN can handle programs that use up to 128 megabytes of extended data
space, but to execute such programs, you must have enough free disk space on your
system to allocate a contiguous block of virtual memory for the data space.
It takes more machine instructions to manipulate 32-bit addresses than 16-bit
addresses. Programs with a large amount of data in extended memory are larger and
slower than they would be otherwise. Therefore, smaller and more frequently used
data items should be kept in the user data segment, while larger and less frequently
used data should be moved to extended memory.
Binding Programs That Use Extended Memory
Binder cannot produce object files that combine FORTRAN program units compiled
with EXTENDEDREF, LARGECOMMON, or LARGEDATA directives and FORTRAN
program units compiled without EXTENDEDREF, LARGECOMMON, or LARGEDATA
directives.
If you only use the compile-time binder, you don’t have to worry about this distinction
unless you include SEARCH directives in your program. Since all program units from a
single compilation use the same extended-memory options, FORTRAN program units
from a single compilation are always bindable.
If you use SEARCH directives or stand-alone Binder to combine program units from
different compilations, you must make sure that all program units you attempt to bind
into a single object file are compiled with extended-memory options (that is, with
LARGECOMMON, EXTENDEDREF, or LARGEDATA directives)—or that all program
units you attempt to bind are compiled without extended-memory options.