DEC Fortran FORTAVE01073 F77 _ F95/90 Compilers Alpha ECO Summary
TITLE: DEC Fortran FORTAVE01073 F77 _ F95/90 Compilers Alpha ECO Summary
Copyright (c) Compaq Computer Corporation 2000. All rights reserved.
Modification Date: 11-OCT-2000
Modification Type: New Kit
PRODUCT: Compaq Fortran for OpenVMS Systems
OP/SYS: OpenVMS Alpha
COMPONENT: F90$MAIN.EXE
FORT$MAIN.EXE
DEC$FORRTL.EXE
SOURCE: Compaq Computer Corporation
ECO INFORMATION:
ECO Kit Name: FORTAVE01073
ECO Kits Superseded by This ECO Kit: None
ECO Kit Approximate Size: 16,170 Blocks
Kit Applies To: OpenVMS Alpha V7.1 and higher
Compaq Fortran for OpenVMS Systems V7.3
System/Cluster Reboot Necessary: No
Rolling Re-boot Supported: Not Applicable
Installation Rating: INSTALL_UNKNOWN
Kit Dependencies:
The following remedial kit(s) must be installed BEFORE
installation of this kit:
None
In order to receive all the corrections listed in this
kit, the following remedial kits should also be installed:
None
ECO KIT SUMMARY:
An ECO kit exists for Fortran 77 and Fortran 95/90 Compilers on
OpenVMS Alpha V7.1 and higher.
This kit contains an update of Compaq Fortran V7.3 (including Fortran
95/90 and Fortran 77 compilers) to correct problems discovered in the
compilers and run-time library since the V7.3 release. Compaq Fortran
V7.3 must be installed on the system before this update can be installed.
o The following changes were made to the Fortran 95/90 compiler:
o Some important information to note about this release:
o An end-of-file condition on READ no longer triggers an
ERR= branch - this is to conform with clearer wording
in the recent standard. If an EOF condition occurs and
there is no END= or IOSTAT=, an error is signalled.
o The Compaq Extended Math Library (CXML) routines are not
updated in this ECO 01 Compaq Fortran kit.
o The new INT_PTR_KIND() intrinsic returns the kind of an
integer pointer (ie, 8 for Tru64 UNIX/Alpha).
o An optional KIND argument is now allowed on the
intrinsics LEN, SHAPE, SIZE, UBOUND, LBOUND, MAXLOC,
MINLOC, INDEX, LEN_TRIM, SCAN, and VERIFY. This allows
these intrinsics to return a result that is other than
default integer kind.
o The following corrections have been made:
o Eliminate internal compiler error for case involving
EQUIVALENCEd POINTER variables not in COMMON.
o Fix problem which could cause incorrect code to be
generated for certain uses of PACK, RESHAPE and UNPACK,
primarily with CHARACTER arguments.
o Speed up compilation of initialized nested structures.
o Fix problem with incorrect code generated for use of
nested SPREAD intrinsic.
o Correct problem where DO loop with loop ending value
of the largest integer value would instead create an
infinite loop.
o Eliminate internal compiler errors for use of defined
assignment in FORALL.
o Speed up compilation where very large MODULEs are
repeatedly used. Further work in this area remains.
o Correct problem with PACK intrinsic where array is
array of structures with an array field with constant
subscript/substring values.
o Improve generated code for SPREAD intrinsic.
o Improve generated code for array reductions.
o Improve generated code for UBOUND, LBOUND, SELECTED_
INT_KIND, SELECTED_REAL_KIND when the argument(s) are
constants.
o Improve generated code for SIZEOF when bounds are
constants.
o When generating temporary copies of arrays, don't
allocate them in 64-bit space unless we know that 64-bit
addresses are acceptable.
o Eliminate internal compiler error for certain cases of
integer (not F90) POINTER as a module variable.
o Reduce severity of "variable has not been used"
diagnostic to "informational".
o Improve generated code for MINVAL/MAXVAL.
o Improve generated code for SIZE(A(:)).
o Improve generated code for SIZE with array argument that
has vector subscripts.
o Add new INT_PTR_KIND() intrinsic which returns the kind
of an integer pointer (either 4 or 8).
o Eliminate internal compiler error for use of allocatable
array reference in a variable format expression.
o Improve generated code for ILEN.
o An end-of-file condition on READ no longer triggers an
ERR= branch - this is to conform with clearer wording
in the recent standard. If an EOF condition occurs and
there is no END= or IOSTAT=, an error is signalled.
o Add a NUL to the end of non-C character literals. This
will not be reflected in the "length" of the constant.
o %VAL/%REF now overrides any mechanism specified in an
explicit interface.
o Improve compile time performance when USEing a
module which contains a large COMMON block with many
(thousands) of EQUIVALENCEd variables.
o Allow general CHARACTER expressions for the MOLD
argument of the TRANSFER intrinsic.
o Correct problem that prevented scalar numeric variables
and array elements which appeared in the iolist of an
output statement (WRITE, etc.) from participating in
uninitialized variable analysis.
o Add support for /CCDEFAULT switch.
o In OPEN statement, if STATUS is not specified, default
to UNKNOWN unless /NOF77 is specified, in which case
default to NEW.
o Eliminate internal compiler error for case involving
EQUIVALENCEd POINTER variables not in COMMON.
o Missing !DEC$ ENDIF no longer causes compiler abort.
o Correct rules for when SAVE in a PURE procedure is
allowed or not.
o Correct parse of assignment to field of RECORD whose
name begins with TYPE.
o Eliminate E-level error when a BLOCK DATA subprogram
name is the same as that of a COMMON block. A future
revision will cause an appropriate diagnostic to appear.
o Issue clearer error message when a module name is
repeated in a USE statement.
o Eliminate problem where UBOUND gave wrong value in
certain cases.
o Allow substrings in left hand side of FORALL.
o Give proper error when a PARAMETER constant is CALLed.
o Give proper error when a variable is CALLed.
o In assignment statements, make sure that real constants
are evaluated using the precision appropriate for their
syntax (single/double/quad).
o Fix problem which could cause incorrect code to be
generated for certain uses of PACK, RESHAPE and UNPACK,
primarily with CHARACTER arguments.
o Correct f77 driver problems, such as invalid syntax
passed to cpp when a .F file was compiled.
o Speed up compilation of initialized nested structures.
o Fix problem with incorrect code generated for use of
nested SPREAD intrinsic.
o Eliminate internal compiler errors for use of defined
assignment in FORALL.
o Speed up compilation where very large MODULEs are
repeatedly used. Further work in this area remains.
o Correct problem with PACK intrinsic where array is
array of structures with an array field with constant
subscript/substring values.
o Improve generated code for SPREAD intrinsic.
o Improve generated code for array reductions.
o Improve generated code for UBOUND, LBOUND, SELECTED_
INT_KIND, SELECTED_REAL_KIND when the argument(s) are
constants.
o Improve generated code for SIZEOF when bounds are
constants.
o Eliminate internal compiler error for certain cases of
integer (not F90) POINTER as a module variable.
o Reduce severity of "variable has not been used"
diagnostic to "informational".
o Improve generated code for MINVAL/MAXVAL.
o Improve generated code for SIZE(A(:)).
o Improve generated code for SIZE with array argument that
has vector subscripts.
o Add new INT_PTR_KIND() intrinsic which returns the kind
of an integer pointer (either 4 or 8).
o Eliminate internal compiler error for use of allocatable
array reference in a variable format expression.
o Improve generated code for ILEN.
o An end-of-file condition on READ no longer triggers an
ERR= branch - this is to conform with clearer wording
in the recent standard. If an EOF condition occurs and
there is no END= or IOSTAT=, an error is signalled.
o Add a NUL to the end of non-C character literals. This
will not be reflected in the "length" of the constant.
This matches the Compaq Fortran 77 behavior, which was
undocumented.
o %VAL/%REF now overrides any mechanism specified in an
explicit interface.
o Generate much better code for certain array constructors
(such as (/0,I=1,500000/) and allow lowerbound,
upperbound and stride to have different KINDs.
o If /warn=declarations is specified, do not issue
diagnostic for use of IMPLICIT NONE.
o Eliminate internal compiler error for EOSHIFT with
constant array argument.
o Eliminate internal compiler error for program fragment
that is "ifdef-ed out".
o Report error for kind mismatch where an ac-value in an
array constructor is an expression of a different kind
than the other literal ac-values.
o Report error for assumed-size array passed as actual to
deferred-shape array.
o Eliminate compiletime error for use of AIMAG in
initialization expression when /real_size=128 is
specified.
o Eliminate internal compiler error for format in a PRINT
statement being an expression with concatenation.
o DFOR$PREFETCH, DFOR$PREFETCH_MODIFY, DFOR$PREFETCH_
EVICT_NEXT intrinsics now supported for Alpha
processors.
o Generate correct values for a PARAMETER array whose
element values are computed in an implied DO loop
involving indexing into another PARAMETER array.
o Correct bad parse of .NE. as record field name.
o Allow a dummy argument that has an INTENT attribute
specified to be specified in a NAMELIST list.
o Give standards warning for kind mismatch between source
and pad arguments in RESHAPE.
o Long source lines are now correctly compiled when
standards checking is requested (warning is still
given.)
o Correct problem with incorrect error given for a
particular complex module renaming case.
o Allow as an extension (as does Compaq Fortran 77) a
LOGICAL argument to an intrinsic which expects INTEGER.
o Correctly parse format which contains ">" characters and
a variable format expression.
o Eliminate internal compiler error for a particularly
complex and deeply nested structure reference in an IF.
o Don't give error for passing section of an assumed size
array to a deferred shape array.
o Improve compilation speed for certain large DATA
statements.
o Eliminate internal compiler error for a certain
complicated FORALL.
o Correct problem with PUBLIC/PRIVATE attributes of a
COMMON block in a MODULE.
o Allow (A .EQ. .NOT. B) (an extension).
o Correct problem with some COMPLEX*32 initialization
expressions.
o Eliminate spurious unused variable diagnostic for
variable used in pointer assignment.
o Correct problem where asking for standards checking
disabled /define
o Fix a case where two NaNs sometimes compared as equal.
o Eliminate many unnecessary copies of assumed-shape
arrays when passed as arguments to explicit shape arrays
by keeping track of whether or not the array is known to
be contiguous.
o Automatically force the alignment of a COMMON block
to be at least as large as that required by the widest
variable in the COMMON block.
o Fix a number of problems with WHERE inside of FORALL.
o Make defined assignment in FORALL work properly.
o Generate correct code for CSHIFT of a non-contiguous
array slice.
o Allow user-defined types to be named BYTE and
DOUBLECOMPLEX.
o Improve generated code for mixed COMPLEX-REAL
multiplication and division.
o In array constructors with only one implied-DO, and
nothing else, avoid creating an unnecessary temp.
o Allow SIZEOF(allocatable-array)
o Improve generated code for SIZEOF(array)
o Allow directory names specified with -module to be
longer than 23 characters.
o Prevent incorrect collapsing of implied-DO loop in an
I/O statement where there are nested loops and the
implied-DO variable of one loop is used as a bound of
an inner loop.
o When the error limit has been exceeded (default 30),
simply suppress further messages rather than exiting
the compiler. This means that the object file will get
deleted appropriately, the listing file created, and
subsequent source files on the command line will be
processed.
o Re-allow complex constants to be passed by value.
The real and imaginary parts are passed as separate
arguments.
o Allow character array valued function as a format
specifier.
o Allow debugging of a character function whose length
is computed based on the length of a passed-length
character argument.
o Solve a set of problems where the length of a character
function is computed using a dummy array argument.
o The use of an INTENT(OUT) argument with LOC is
now considered a "definition" for the purpose of
uninitialized variable checking. Also, the use of
LOC(ARRAY(N)) is now considered a "use" of ARRAY for
unused variable checking.
o Eliminate internal compiler error for structure with
%FILL component in module procedure.
o When standards checking is requested, do not give a
warning for fixed-form source line exactly 72 columns
long.
o Eliminate internal compiler error for assignment
statement with variable whose name starts with an
underscore. (Such names are not allowed, but a
reasonable error should have been given.)
o Correct the problem where if a program unit contains
two internal subroutines which both use host-association
to access the same variable, the second one gets an
inappropriate error.
o Eliminate internal compiler error for declaration of
a derived type array with an initializer that is an
implied-DO array constructor.
o Eliminate inappropriate error message for initialization
expression of an implied-DO array constructor of length
zero.
o When standards checking is enabled, give one warning,
not three, for a !DEC$ ATTRIBUTES directive.
o Generate correct code for certain cases involving
overloading of the .AND. and .OR. operators.
o Allow Variable Format Expression in a character literal
when the I/O list has a subscripted array element.
o Eliminate compiler abort with incorrect program that
names the enclosing program unit in an ONLY clause.
o Allow the extension syntax '101'B for a binary literal.
o Correctly handle whitespace in -omp conditional
compilation lines.
o Fix problem where $INTEGER directive was not being
properly handled.
o Add support for KIND= keyword in MINLOC/MAXLOC
o Add suppprt for KIND= keyword in various string
intrinsics.
o Prevent compiler abort for incorrect attempt to pass
unsupported datatypes by value.
o Properly report invalid declaration EXTERNAL,INTEGER and
recover so that remainder of program is properly parsed.
o Give standards warning for non-standard placement of
NAMELIST.
o Eliminate internal compiler error for particular type
of concatenation of substrings when Fortran 95 standards
checking is requested.
o When converting a negative REAL value to COMPLEX, use
+0.0 as the imaginary part rather than -0.0.
o Allow PARAMETER constant in ALIGN= specification of
!DEC$ PSECT.
o Don't give shape mismatch for correct-shape RESHAPE in
initialization expression.
o Don't give inappropriate alignment warnings for certain
convoluted EQUIVALENCE/ COMMON combinations.
o Eliminate internal compiler error for initialization
expression which contains a constant expression in a
structure constructor.
o Allow EXTERNAL :: FOO
o The following changes were made to the Fortran 77 compiler:
- /fast sets /arch=host/optimize=tune=host
o The following changes were made to the run-time support:
- An end-of-file or end-of-record status is no longer treated as
an error status. This change was done to adhere to the Fortran
90 language standard. Prior to this change, if there was an
ERR= specified and no END=|EOR= for a READ operation and the READ
encountered an end-of-file or end-of-record situation, the ERR=
path would be followed. With this change, this situation would
now result in a fatal message being generated.
- The runtime library now contains support for a new environment
variable, FOR$CONVERT_ that allows a user to associate a
foreign data conversion option with files of a particular file
extension. See the documentation for more details.
Complete release notes, including those for the V7.3 release, are provided
by the kit in SYS$HELP:FORTRAN.RELEASE_NOTES
INSTALLATION NOTES:
To install the ECO kit, perform the following steps:
1. Log in to the SYSTEM account or an account with the SYSPRV, CMKRNL,
SYSNAM and SYSLCK privileges available.
2. If the ECO kit was provided as a file with a file type ending with
EXE, that is a compressed archive. RUN the file to expand into two
.PCSI kits. For example, if the kit file is FORTAVE01073.DCX_AXPEXE:
$ RUN FORTAVE01073.DCX_AXPEXE
Two files will be created:
DEC-AXP-FORRTLECO_01_073-V0703-626-4.PCSI
DEC-AXP-FORTECO_01_073-V0703-1-4.PCSI
3. Enable the SYSPRV, CMKRNL, SYSNAM and SYSLCK privileges:
$ SET PROCESS /PRIVILEGE=(SYSPRV,CMKRNL,SYSNAM,SYSLCK)
4. Install the RTL and compiler updates
$ PRODUCT INSTALL FORRTLECO_01_073 /SOURCE=disk:[dir] /HELP
$ PRODUCT INSTALL FORTECO_01_073 /SOURCE=disk:[dir] /HELP
where "disk:[dir]" is the disk and directory where the .PCSI files are
located.
For further installation details, see the Compaq Fortran Installation Guide
for OpenVMS Alpha Systems.
The system does not need to be rebooted after this kit is installed.
All trademarks are the property of their respective owners.
This patch can be found at any of these sites:
Colorado Site
Georgia Site
Files on this server are as follows:
fortave01073.README
fortave01073.CHKSUM
fortave01073.CVRLET_TXT
fortave01073.zip
fortave01073.CVRLET_TXT
|