-qxlf77

Category

Language element control

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

Read syntax diagramSkip visual syntax diagram
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.