FORTRAN Reference Manual

Compiler Directives
FORTRAN Reference Manual528615-001
10-43
LARGEDATA Compiler Directive
Specifying LARGEDATA automatically selects EXTENDEDREF.
If a LARGEDATA directive appears anywhere in the compiler’s input, at least one
EXTENDEDREF, LARGECOMMON, or LARGEDATA directive must precede the
first FORTRAN statement. You cannot use the LARGEDATA directive in a
compilation that uses the NOEXTENDEDREF directive.
You cannot use the LARGEDATA directive for FORTRAN program units executed
from a user library object file or from the system library.
Do not use the LARGEDATA directive in programs that call Guardian procedures
(for example, the SEGMENT_ALLOCATE_ procedure) to allocate extended data
space. Your direct handling of extended data space through calls to Guardian
procedures can interfere with the memory management required for the
LARGEDATA directive. Use LARGEDATA directives, not Guardian procedure calls,
if your program needs extended data space.
Program Conversion Considerations
When converting an existing FORTRAN program to run on HP NonStop systems, you
should not use a LARGEDATA directive at first. If execution ends with a “stack
overflow” error, try adding a LARGEDATA directive with no items at the beginning of
the source program.
If “stack overflow” still occurs, consider the following:
You might be executing a recursive procedure for which the termination condition is
never met.
You might need to use SAVE statements to make some local variables static.
You might need to use the LARGESTACK directive to specify the size of the
extended stack area.
If the program runs correctly but is too large or too slow, consider replacing the blank
LARGEDATA directive with a set of more specific ones.
Examples
?LARGEDATA (names, addresses, birth)
?LARGEDATA 128