c***@gmail.com
2020-10-29 10:43:24 UTC
Fortran 202x contains several extensions to Fortran 2018; these are listed below.
• Source form: The maximum length of a line in free form source has been increased*. The maximum length of a statement has been increased. The limit on the number of continuation lines has been removed.
• Data declaration: A data object with a coarray component can be an array or allocatable. TYPEOF and CLASSOF type specifiers can be used to declare one or more entities to have the same type and type parameters as another entity.
• Data usage and computation: Binary, octal, and hexadecimal literal constants can be used in additional contexts. A deferred-length allocatable errmsg-variable is allocated by the processor to the length of the explanatory message. An ALLOCATE statement can specify the bounds of an array allocation with array expressions. A pointer assignment statement can specify lower bounds or rank remapping with array expressions.
• Input/output: The AT edit descriptor provides output of character values with trailing blanks trimmed. The LEADING_ZERO= specifier in the OPEN and WRITE statements, and the LZP, LZS and LZ control edit descriptors, provide control of optional leading zeros during formatted output. A deferred-length allocatable iomsgvariable is allocated by the processor to the length of the explanatory message. A deferred-length allocatable io-unit in a WRITE statement is allocated by the processor to the length of the record to be written.
• Execution control: The REDUCE locality specifier for the DO CONCURRENT construct specifies reduction variables for the loop. The NOTIFY WAIT statement, NOTIFY= specifier on an image selector, and the NOTIFY_TYPE from the intrinsic module ISO_FORTRAN_ENV provide one-sided data-oriented synchronization between images.
• Intrinsic procedures and modules: The intrinsic functions ACOSD, ASIND, ATAND, ATAN2D, COSD, SIND, and TAND are trigonometric functions in which angles are specified in degrees. The intrinsic functions ACOSPI, ASINPI, ATANPI, ATAN2PI, COSPI, SINPI, and TANPI are trigonometric functions in which angles are specified in halfrevolutions (that is, as multiples of π). The intrinsic function SELECTED_LOGICAL_KIND returns kind type parameter values for type logical. The intrinsic subroutine SPLIT parses a string into tokens. The procedures C_F_STRPOINTER and F_C_STRING have been added to the intrinsic module ISO_C_BINDING to assist in the use of null-terminated strings. The subroutine C_F_POINTER in the intrinsic module ISO_C_BINDING has an extra optional dummy argument, LOWER, that specifies the lower bounds for FPTR. Additional named constants LOGICAL8, LOGICAL16, LOGICAL32, LOGICAL64, and REAL16 have been added to the intrinsic module ISO_FORTRAN_ENV. When a deferred-length allocatable actual argument of an intrinsic procedure is to be assigned character data, it is allocated by the processor to the length of the data. Execution of a collective subroutine can be successful on an image even when an error condition occurs for the corresponding execution on another image.
• Program units and procedures: A procedure can be specified to be a simple procedure; a simple procedure references or defines nonlocal variables only via its dummy arguments.
j3-fortran/20-007.pdf(Fortran 202X Working Document)/Introduction
* to 10000 characters.
• Source form: The maximum length of a line in free form source has been increased*. The maximum length of a statement has been increased. The limit on the number of continuation lines has been removed.
• Data declaration: A data object with a coarray component can be an array or allocatable. TYPEOF and CLASSOF type specifiers can be used to declare one or more entities to have the same type and type parameters as another entity.
• Data usage and computation: Binary, octal, and hexadecimal literal constants can be used in additional contexts. A deferred-length allocatable errmsg-variable is allocated by the processor to the length of the explanatory message. An ALLOCATE statement can specify the bounds of an array allocation with array expressions. A pointer assignment statement can specify lower bounds or rank remapping with array expressions.
• Input/output: The AT edit descriptor provides output of character values with trailing blanks trimmed. The LEADING_ZERO= specifier in the OPEN and WRITE statements, and the LZP, LZS and LZ control edit descriptors, provide control of optional leading zeros during formatted output. A deferred-length allocatable iomsgvariable is allocated by the processor to the length of the explanatory message. A deferred-length allocatable io-unit in a WRITE statement is allocated by the processor to the length of the record to be written.
• Execution control: The REDUCE locality specifier for the DO CONCURRENT construct specifies reduction variables for the loop. The NOTIFY WAIT statement, NOTIFY= specifier on an image selector, and the NOTIFY_TYPE from the intrinsic module ISO_FORTRAN_ENV provide one-sided data-oriented synchronization between images.
• Intrinsic procedures and modules: The intrinsic functions ACOSD, ASIND, ATAND, ATAN2D, COSD, SIND, and TAND are trigonometric functions in which angles are specified in degrees. The intrinsic functions ACOSPI, ASINPI, ATANPI, ATAN2PI, COSPI, SINPI, and TANPI are trigonometric functions in which angles are specified in halfrevolutions (that is, as multiples of π). The intrinsic function SELECTED_LOGICAL_KIND returns kind type parameter values for type logical. The intrinsic subroutine SPLIT parses a string into tokens. The procedures C_F_STRPOINTER and F_C_STRING have been added to the intrinsic module ISO_C_BINDING to assist in the use of null-terminated strings. The subroutine C_F_POINTER in the intrinsic module ISO_C_BINDING has an extra optional dummy argument, LOWER, that specifies the lower bounds for FPTR. Additional named constants LOGICAL8, LOGICAL16, LOGICAL32, LOGICAL64, and REAL16 have been added to the intrinsic module ISO_FORTRAN_ENV. When a deferred-length allocatable actual argument of an intrinsic procedure is to be assigned character data, it is allocated by the processor to the length of the data. Execution of a collective subroutine can be successful on an image even when an error condition occurs for the corresponding execution on another image.
• Program units and procedures: A procedure can be specified to be a simple procedure; a simple procedure references or defines nonlocal variables only via its dummy arguments.
j3-fortran/20-007.pdf(Fortran 202X Working Document)/Introduction
* to 10000 characters.