FORTRAN Reference Manual

Compiler Directives
FORTRAN Reference Manual528615-001
10-42
LARGEDATA Compiler Directive
LARGEDATA Compiler Directive
The LARGEDATA directive causes the compiler to allocate memory space in the object
program’s extended data segment for local data.
item
is a simple variable name, an unsubscripted array name, an unsubscripted
unqualified RECORD name, or an unsigned integer constant.
If item is not a constant, FORTRAN allocates space for item in the extended data
segment, rather than in the user data segment.
If item is an integer constant, FORTRAN allocates space in the extended data
segment for all local variables having a size of at least item bytes. If you omit
item, FORTRAN interprets this as:
?LARGEDATA 256
If you specify two or more integer constant items, the compiler uses the smallest
of their values. If an item has a zero value, the compiler does not assign any data
objects to the extended data segment.
Considerations
You can include as many LARGEDATA directives in your program as you like, and
you can place them anywhere in the input to the compiler.
°
If you specify the LARGEDATA directive using the implied RUN command for
the compiler, or specify it in the source file before the first FORTRAN
statement, the directive applies to all the program units in the compilation.
°
If you specify a LARGEDATA directive after the first FORTRAN statement of
your program, it applies to the program unit it is specified in.
Specifying an item using a LARGEDATA directive causes the compiler to allocate
memory space in the object program’s extended data segment for that item and
any item associated with it in an EQUIVALENCE statement.
The compiler allocates an item that you also declare with a DATA or SAVE
statement permanently and statically. It allocates all other items you specify in the
LARGEDATA directive dynamically on a run-time stack.
The compiler ignores an item specification in a program unit in which the item is
known as a subprogram name, an entry point name, a statement function name, a
dummy argument name, or a symbolic constant name, or is in a common block, or
is equivalenced to a variable that is in a common block.
LARGEDATA
item
item , item[]. . .