Preventive Service Planning
Abstract
This page contains corrections and additions to the product documentation shipped with IBM XL Fortran for AIX, V15.1.
Content
Tab navigation
The following corrections and additions apply to the IBM XL Fortran for AIX, V15.1 Getting Started:
Topic location: What's new for IBM XL Fortran for AIX, 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 AIX, 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 AIX, V15.1 Installation Guide:
Topic location: Update installation > Preparing a PTF package for installation > Installing PTF updates on the PASE system
xlfcmp.15.1.0.ndi.*
Should read:
xlfcmp.15.1.0.ndi_*
xlfcmp.15.1.0.ndi.V.R.M.F.bff
Should read:
xlfcmp.15.1.0.ndi_V.R.M.F.bff
xlfcmp.15.1.0.ndi.0000.0006.bff
Should read:
xlfcmp.15.1.0.ndi_15.1.0.1.bff
The following corrections and additions apply to the IBM XL Fortran for AIX, V15.1 Compiler Reference:
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 > -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 AIX, V15.1 Language Reference:
Topic location: Array concepts > Assumed-size arrays
The following bullet should be added to the list about the size information:
- If the actual argument is a scalar and the assumed-size dummy argument is of assumed-type, the assumed-size array has exactly one element.
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:
- The actual argument is of type default character.
- The 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.
- The dummy argument is an assumed-rank object.
- The dummy argument is an assumed-size array of assumed-type.
Topic location: Program units and procedures > Pure procedures
The PAUSE, STOP, and ERROR STOP 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 notes under both syntax diagrams:
Note: Valid for PowerPC 970 and POWER5 processors.
Should read:
Note: Valid for PowerPC 970 and POWER5 processors or higher.
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. IfA
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)
scalarINTEGER
. 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 Adding support for vec_xl, vec_xl_be, vec_xst and vec_xst_be built-in functions in XL C, C/C++ for AIX, V13.1 and XL Fortran for AIX, V15.1.
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.
- a contiguous array.
- 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.
- If X is an array, X must be a contiguous nonzero-size array.
- 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 AIX, 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: High performance libraries > Using the Mathematical Acceleration Subsystem libraries (MASS) > Compiling and linking a program with MASS
To compile an application that calls the functions in the scalar, SIMD, or vector MASS libraries, specify mass, and/or one of mass_simdp7, mass_simdp8, and/or one of massv, massvp3, massvp4, massvp5, massvp6, massvp7, massvp8 on the -l linker option.
Should read:
To compile an application that calls the functions in the scalar, SIMD, or vector MASS libraries, specify mass, and/or one of mass_simdp7, mass_simdp8, and/or one of massv, massvp4, massvp5, massvp6, massvp7, massvp8 on the -l linker option.
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.
Was this topic helpful?
Document Information
Modified date:
08 August 2018
UID
swg21673542