IBM Support

Documentation errata for IBM XL Fortran for Linux, V15.1

Preventive Service Planning


Abstract

This page contains corrections and additions to the product documentation shipped with IBM XL Fortran for Linux, V15.1.

Content

The following corrections and additions apply to the IBM XL Fortran for Linux, V15.1 Getting Started:

Topic location: What's new for IBM XL Fortran for Linux, V15.1 > Language interoperability features

The following information should be added:

Relaxed restrictions on module procedure C_FUNLOC(X) and C_LOC(X) of intrinsic module ISO_C_BINDING

Some restrictions on module procedure C_FUNLOC(X) and C_LOC(X) of intrinsic module ISO_C_BINDING that are put forward by earlier Fortran language standards are removed according to TS29113.



Topic location: What's new for IBM XL Fortran for Linux, V15.1 > Other XL Fortran updates

The following entry should be added:

Passing scalar actual arguments that correspond to assumed-size dummy arguments of assumed-type

You can pass a scalar as the actual argument that corresponds to an assumed-size dummy argument of assumed-type.

The following corrections and additions apply to the IBM XL Fortran for Linux, V15.1 Installation Guide:

Topic location: Configuring IBM XL Fortran for Linux 15.1 (for advanced users) > Running the xlf_configure utility directly (for advanced users) > xlf_configure options

-smprt xlsmprt_path

-xlfrt xlrte_path

Should read:

-smprt xlsmprt_path

-xlfrt xlrte_path

The following corrections and additions apply to the IBM XL Fortran for Linux, V15.1 Compiler Reference:

Topic location: Setting up and customizing XL Fortran > Using custom compiler configureation files > Using IBM XL Fortran for Linux, V15.1 with the Advance Toolchain

This topic should be added. For details, see Using IBM XL Fortran for Linux, V15.1 with the Advance Toolchain.



Topic location: Editing, compiling, linking, and running XL Fortran programs > Compiling XL Fortran programs > Compiling and linking a library > Linking a library to an application

where directory is the path to the directory containing the library libtest.a. By using the -l option, you instruct the linker to search in the directory specified via the -L option (and, for a shared library, the -R option) for libtest.so; if it is not found, the linker searches for libtest.a. For additional linkage options, including options that modify the default behavior, see the operating system ld documentation .

Should read:

At compile time, you instruct the linker to search for libtest.so in the first directory specified via the -L option. If libtest.so is not found, the linker searches for libtest.a. If neither file is found, the search continues with the next directory specified via the -L option.

At run time, the runtime linker searches for libtest.so in the first directory specified via the -R option. If libtest.so is not found, the search continues with the next directory specified via the -R option. The path specified by the -R option can be overridden at run time via the LD_LIBRARY_PATH environment variable.



Topic location: Detailed descriptions of the XL Fortran compiler options > -M

The option name should read -MMD instead of -M.

-M is the short form of -qmakedep.

Should read:

-MMD is the short form of -qmakedep.

Syntax

>>--M------------------------------------------------------><

Should read:

>>--MMD----------------------------------------------------><

Topic location: Detailed descriptions of the XL Fortran compiler options > -O

The following statement should be added under "Usage":

If optimization level -O3 or higher is specified on the command line, the -qhot and -qipa options that are set by the optimization level cannot be overridden by @PROCESS OPT(0) or @PROCESS OPT(2).



Topic location: Detailed descriptions of the XL Fortran compiler options > -qmakedep

-qmakedep is the long form of -M.

Should read:

-qmakedep is the long form of -MMD.



Topic location: Detailed descriptions of the XL Fortran compiler options > -qwarn64

Under Usage

You can use the -qextchk option and interface blocks for argument checking.

Should read:

You can use interface blocks for argument checking.



Topic location: Detailed descriptions of the XL Fortran compiler options > -qunroll

The following paragraph should be added to the end of the description for the n parameter:

If you specify a number for the -qunroll option, the compiler might limit unrolling to a number smaller than the value you specify. This is because the option form affects all loops in source files to which it applies and large unrolling factors might significantly increase compile time without necessarily improving runtime performance. To specify a specific unrolling factor for particular loops, use the unroll directive in those loops.

The following corrections and additions apply to the IBM XL Fortran for Linux, V15.1 Language Reference:

Topic location: Array concepts > Assumed-size arrays

The following bullet should be added to the list about the size information:

  • TS beginsIf the actual argument is a scalar and the assumed-size dummy argument is of assumed-type, the assumed-size array has exactly one element.TS ends


Topic location: Program units and procedures > Scope > Entities with scope > Local entity

If two local entities of class 1, one of which is a derived type, are accessible in a scoping unit, any PUBLIC or PRIVATE statement that specifies the name of the entities applies to both entities.

Should read:

If two local entities of class 1, one of which is a derived type, have the same name identifier and are accessible in a scoping unit, any PUBLIC or PRIVATE statement that specifies the name of the entities applies to both entities. The PUBLIC or PRIVATE attribute that is specified in the derived type declaration statement also applies to both entities.



Topic location: Program units and procedures > Argument association

If the actual argument is scalar, the corresponding dummy argument must be scalar, unless the actual argument is of type default character, of type character with the C character kind, or is an element or substring of an element of an array that is not an assumed-shape or pointer array.

Should read:

If the actual argument is scalar, the corresponding dummy argument belongs to one of the following categories:

  • The dummy argument must be scalar unless the actual argument meets one of the following conditions:
    • Fortran 2003 beginsThe actual argument is of type default character.
    • Fortran 2003 beginsThe actual argument is of type character with the C character kind.
    • The actual argument is an element or substring of an element of an array that is not an assumed-shape or pointer array.
  • TS beginsThe dummy argument is an assumed-rank object.TS ends
  • TS beginsThe dummy argument is an assumed-size array of assumed-type.TS ends


Topic location: Program units and procedures > Pure procedures

The PAUSE, STOP, and Fortran 2008 beginsERROR STOPFortran 2008 ends statements are not permitted in pure procedures.

Should read:

The PAUSE and STOP statements are not permitted in pure procedures.



Topic location: Statements and attributes > BLOCK (Fortran 2008)

In the example:

IF (i < j)

Should read:

IF (i < j) THEN

Topic location: Statements and attributes > ERROR STOP (Fortran 2008)

The following statement should be removed:

A pure subprogram cannot contain an ERROR STOP statement. For details, see Pure procedures.



Topic location: Hardware-specific directives > PREFETCH > PROTECTED_UNLIMITED_STREAM_SET_GO

The following notes under both syntax diagrams should be removed:

Note: Valid for PowerPC 970 and POWER5 processors.

stream_id

is the ID for the prefetched stream. It must be scalar and of type integer. For POWER5 processors, it can be any number from 0 to 7.

Should read:

stream_id

is the ID for the prefetched stream. It must be scalar and of type integer. For PowerPC 970 and POWER5 processors, it can be any number from 0 to 7. For POWER6 processors, it can be any number from 0 to 15. For POWER7 processors or higher, it can be any number from 0 to 11.



Topic location: Intrinsci procedures > Classes of intrinsic procedures > Inquiry intrinsic functions

STORAGE_SIZE2 should be added to the table.



Topic location: Intrinsic procedures > Classes of intrinsic procedures > Elemental intrinsic procedures

The following elemental intrinsic procedures should be added to the table:

ACOSH (Fortran 2008)

ASINH (Fortran 2008)



Topic location: Intrinsic procedures > Detailed descriptions of intrinsic procedures > MOD(A, P)

Specific Name Argument Type Result Type Pass As Arg?
MOD any integer same as argument yes

Should read:

Specific Name Argument Type Result Type Pass As Arg?
MOD default integer default integer yes

Topic location: Intrinsic procedures > Detailed descriptions of intrinsic procedures > STORAGE_SIZE (A, KIND) (Fortran 2008)

This topic should be added.

Purpose

Returns the storage size in bits for an element of an array that has the dynamic type and type parameters of A.

Class

Inquiry function

Argument type and attributes

A
A data object of any type.
If A is polymorphic, it cannot be an undefined pointer. If A is unlimited polymorphic or has any deferred type parameters, it cannot be an allocatable variable that is not allocated, or a pointer that is disassociated or undefined.
KIND (optional)
An INTENT(IN) scalar INTEGER. The actual argument corresponding to KIND must be a constant expression.

Result type and attributes

  • The result is a scalar of type integer.
  • If KIND is present, the kind type parameter is that specified by KIND; otherwise, the kind type parameter is that of the default integer type.

Result value

The result value is the size in bits for an element of an array that has the dynamic type and type parameters of A.

Example

The following example shows that i is assigned the value of default integer size.

    PROGRAM main      IMPLICIT NONE      INTEGER i, j     i = STORAGE_SIZE(j)   PRINT i    END  


Topic location: Vector intrinsic procedures (IBM extension) > VEC_CTF(ARG1, ARG2)

The following note is added under Result value:

Note: The second and fourth elements of the result vector are undefined when the elements of ARG1 are of kind 8.



Topic location: Vector intrinsic procedures (IBM extension)

The following topics should be added under this section:

  • VEC_XL(ARG1, ARG2)
  • VEC_XL_BE(ARG1, ARG2)
  • VEC_XST(ARG1, ARG2, ARG3)
  • VEC_XST_BE(ARG1, ARG2, ARG3)

For details, see place holder



Topic location: Language interoperability features > The ISO_C_BINDING module > Procedures > C_FUNLOC(X)

X

An interoperable procedure.

Should read:

X

A procedure. If it is a procedure pointer, it must be associated.



Topic location: Language interoperability features > The ISO_C_BINDING module > Procedures > C_LOC(X)

X

Must be one of the following:

  • an interoperable, nonpointer, nonallocatable data variable with the TARGET attribute.
  • an allocated allocatable data variable with the TARGET attribute and interoperable type and type parameters and not a zero-sized array.
  • Fortran 2008 beginsa contiguous array.Fortran 2008 ends
  • an associated scalar pointer with interoperable type and type parameters.
  • a nonallocatable, nonpointer, scalar variable that has the TARGET attribute.
  • an allocated, nonpolymorphic, allocatable scalar pointer that has the TARGET attribute.
  • an associated, nonpolymorphic, scalar pointer.

Should read:

X

Must meet the following rules:

  • X has either the POINTER or the TARGET attribute.
  • X is either a variable with interoperable type and kind type parameters, or a nonpolymorphic variable without length type parameters.
  • If X is allocatable, X must be allocated.
  • If X is a pointer, X must be associated.
  • Fortran 2008 beginsIf X is an array, X must be a contiguous nonzero-size array.Fortran 2008 ends
  • X cannot be a zero-length string.

Topic location: Language interoperability features > The ISO_Fortran_binding.h header file (Technical Specification) > Functions > CFI_deallocate

If allocation is successful, CFI_SUCCESS is returned. If allocation is unsuccessful, dv is not modified and the result is an error indicator.

Should read:

If deallocation is successful, CFI_SUCCESS is returned. If deallocation is unsuccessful, dv is not modified and the result is an error indicator.

The following corrections and additions apply to the IBM XL Fortran for Linux, V15.1 Optimization and Programming Guide:

Topic location: Optimizing your applications > Specialized optimization techniques > Profile-directed feedback

If the compiler cannot read any PDF files in this step, the compiler issues a severe error message and stops compilation.

Should read:

If the compiler cannot read any PDF files in this step, the compiler issues error message 1586-401 but continues the compilation. If you want the compiler to stop the compilation, specify option -qhaltonmsg=1586-401.

Topic location: Parallel programming with XL Fortran > Setting runtime options > Environment variables for OpenMP > OMP_STACKSIZE

If the value of OMP_STACKSIZE is not set, the initial value is set to the default value (256 M for 32-bit mode, or up to the limit imposed by system resources for 64-bit mode).

Should read:

If the value of OMP_STACKSIZE is not set, the initial value is set to the default value. The default value is 4194304B. The maximum value for 32-bit mode is 256M. For 64-bit mode, the maximum is up to the limit imposed by system resources.

[{"Product":{"code":"SSAT4T","label":"XL Fortran for Linux"},"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Component":"Documentation","Platform":[{"code":"PF016","label":"Linux"}],"Version":"15.1","Edition":"","Line of Business":{"code":"LOB17","label":"Mainframe TPS"}}]

Document Information

Modified date:
08 August 2018

UID

swg21672672