Purpose
Provides compatibility with XL Fortran Versions
1 and 2 aspects of language semantics and I/O data format that
have changed.
Most
of these changes are required by the Fortran 90 standard.
Syntax
Option:
.-nosofteof----.
+-nopersistent-+
+-nooldboz-----+
+-leadzero-----+
+-nointxor-----+
+-nointarg-----+
+-nogedit77----+
+-blankpad-----+
>>- -q--xlf77--=--+-noblankpad---+-----------------------------><
+-gedit77------+
+-intarg-------+
+-intxor-------+
+-noleadzero---+
+-oldboz-------+
+-persistent---+
'-softeof------'
@PROCESS:
@PROCESS XLF77(settings)
Defaults
By default, the compiler uses
settings that apply to Fortran 90, Fortran 95, Fortran 2003, Fortran 2008, and
the most recent compiler version in all cases.
The default
suboptions are: blankpad, nogedit77, nointarg, nointxor, leadzero, nooldboz, nopersistent,
and nosofteof.
These defaults are
only used by the xlf90, f90, xlf90_r, xlf90_r7, xlf95, f95, xlf95_r, xlf95_r7, xlf2003, f2003, xlf2003_r, xlf2008, f2008,
and xlf2008_r
commands, which you should use to compile new programs.
For maximum compatibility for programs and data created
for XL Fortran Versions
1 and 2, the xlf, xlf_r, xlf_r7, f77,
and fort77 commands
use the opposite settings for this option.
Parameters
To get various aspects of
XL Fortran Version
2 behavior, select the nondefault choice for one or more of the following
suboptions. The descriptions explain what happens when you specify
the nondefault choices.
- blankpad | noblankpad
- For internal, direct-access, and stream-access files, uses a
default setting equivalent to pad='no'.
This setting produces conversion errors when reading from such a file
if the format requires more characters than the record has, thus duplicating the XL Fortran Version
2 behavior. This suboption does not affect direct-access or stream-access
files opened with a pad= specifier.
- gedit77 | nogedit77
- Uses FORTRAN 77 semantics for the output of REAL objects
with the G edit descriptor. Between FORTRAN
77 and Fortran 90, the representation of 0 for a list item in a formatted
output statement changed, as did the rounding method, leading to different
output for some combinations of values and G edit
descriptors.
- intarg | nointarg
- Converts all integer arguments of an intrinsic procedure to the
kind of the longest argument if they are of different kinds. Under
Fortran 90/95 rules, some intrinsics (for example, IBSET)
determine the result type based on the kind of the first argument;
others (for example, MIN and MAX)
require that all arguments be of the same kind.
- intxor | nointxor
- Treats .XOR. as a logical binary intrinsic
operator. It has a precedence equivalent to the .EQV. and .NEQV. operators
and can be extended with an operator interface. (Because the semantics
of .XOR. are identical to those of .NEQV., .XOR. does
not appear in the Fortran 90 or Fortran 95 language standard.)
Otherwise,
the .XOR. operator is only recognized as
a defined operator. The intrinsic operation is not accessible, and
the precedence depends on whether the operator is used in a unary
or binary context.
- leadzero | noleadzero
- Produces a leading zero in real output under the D, E, L, F,
and Q edit descriptors.
- oldboz | nooldboz
- Turns blanks into zeros for data read by B, O,
and Z edit descriptors, regardless of the BLANK= specifier
or any BN or BZ control
edit descriptors. It also preserves leading zeros and truncation of
too-long output, which is not part of the Fortran 90 or Fortran 95
standard.
- persistent | nopersistent
- Saves the addresses of arguments to subprograms with ENTRY statements
in static storage, for compatibility with XL Fortran Version
2. This is an implementation choice that has been changed for
increased performance.
- softeof | nosofteof
- Allows READ and WRITE operations
when a unit is positioned after its endfile record unless that position
is the result of executing an ENDFILE statement.
This suboption reproduces a FORTRAN 77 extension of earlier versions
of XL Fortran that
some existing programs rely on.
Usage
If you only want to compile and run
old programs unchanged, you can continue to use the appropriate invocation
command and not concern yourself with this option.
You should
only use this option if you are using existing source or data files
with Fortran 90, Fortran 95, Fortran 2003, and Fortran
2008 and the xlf90, f90, xlf90_r, xlf90_r7, xlf95, f95, xlf95_r, xlf95_r7, xlf2003, f2003, xlf2003_r, xlf2008, f2008,
or xlf2008_r command
and find some incompatibility because of behavior or data format that
has changed since XL Fortran Version
2.
Eventually, you should be able to recreate the data
files or modify the source files to remove the dependency on the
old behavior.