FRTN-OSF FORTAUE01053 Fortran F95/90 _ F77 Compiler V5.3__UNIX ECO Summary
TITLE: FRTN-OSF FORTAUE01053 Fortran F95/90 _ F77 Compiler V5.3__UNIX ECO Summary
Modification Date: 08-AUG-2000
Modification Type: New Kit
Copyright (c) Compaq Computer Corporation 2000. All rights reserved.
PRODUCT: Compaq Fortran for Tru64 UNIX Alpha Systems
COMPONENT: Fortran 95/90
Fortran 77
OPSYS: Compaq UNIX V4.0 - V5.0
SOURCE: Compaq Computer Corporation
ECO INFORMATION:
ECO Kit Name: FORTAUE01053
DFA531.tar
ECO Kits Superseded by This ECO Kit: None
ECO Kit Approximate Size: 36,960 Blocks
Kit Applies To: Compaq Fortran for Tru64 UNIX Alpha Systems V5.3
Compaq UNIX V4.0 - V5.0
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 the V5.3 Fortran 95/90 and Fortran 70 compilers on
Compaq UNIX V4.0 through V5.0. This kit addresses the following
problems:
o Changes to the Fortran 95 compiler
+ Add a NUL to the end of non-C character literals. This
will not be reflected in the "length" of the constant.
+ %VAL/%REF now overrides any mechanism specified in an
explicit interface.
+ Improve compile time performance when USEing a
module which contains a large COMMON block with many
(thousands) of EQUIVALENCEd variables.
+ Allow general CHARACTER expressions for the MOLD
argument of the TRANSFER intrinsic.
+ 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.
+ Add support for -ccdefault switch.
+ In OPEN statement, if STATUS is not specified, default
to UNKNOWN unless -f66 is specified, in which case
default to NEW.
+ Eliminate internal compiler error for case involving
EQUIVALENCEd POINTER variables not in COMMON.
+ Missing !DEC$ ENDIF no longer causes compiler abort.
+ Correct rules for when SAVE in a PURE procedure is
allowed or not.
+ Correct parse of assignment to field of RECORD whose
name begins with TYPE.
+ 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.
+ Issue clearer error message when a module name is
repeated in a USE statement.
+ Eliminate problem where UBOUND gave wrong value in
certain cases.
+ Allow substrings in left hand side of FORALL.
+ Give proper error when a PARAMETER constant is CALLed.
+ Give proper error when a variable is CALLed.
+ In assignment statements, make sure that real constants
are evaluated using the precision appropriate for their
syntax (single/double/quad).
+ Fix problem which could cause incorrect code to be
generated for certain uses of PACK, RESHAPE and UNPACK,
primarily with CHARACTER arguments.
+ Correct f77 driver problems, such as invalid syntax
passed to cpp when a .F file was compiled.
+ Speed up compilation of initialized nested structures.
+ Fix problem with incorrect code generated for use of
nested SPREAD intrinsic.
+ Driver now understands shorter "-ieee" switch name.
+ Eliminate internal compiler errors for use of defined
assignment in FORALL.
+ Speed up compilation where very large MODULEs are
repeatedly used. Further work in this area remains.
+ Correct problem with PACK intrinsic where array is
array of structures with an array field with constant
subscript/substring values.
+ Improve generated code for SPREAD intrinsic.
+ Improve generated code for array reductions.
+ Improve generated code for UBOUND, LBOUND, SELECTED_
INT_KIND, SELECTED_REAL_KIND when the argument(s) are
constants.
+ Improve generated code for SIZEOF when bounds are
constants.
+ Fix unix driver to pass ld's position-specific qualifier
within lib_list rather than cc_list.
+ Eliminate internal compiler error for certain cases of
integer (not F90) POINTER as a module variable.
+ Reduce severity of "variable has not been used"
diagnostic to "informational".
+ Improve generated code for MINVAL/MAXVAL.
+ Improve generated code for SIZE(A(:)).
+ Improve generated code for SIZE with array argument that
has vector subscripts.
+ Add new INT_PTR_KIND() intrinsic which returns the kind
of an integer pointer (either 4 or 8).
+ Eliminate internal compiler error for use of allocatable
array reference in a variable format expression.
+ Improve generated code for ILEN.
+ 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.
+ 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.
+ %VAL/%REF now overrides any mechanism specified in an
explicit interface.
+ Generate much better code for certain array constructors
(such as (/0,I=1,500000/) and allow lowerbound,
upperbound and stride to have different KINDs.
+ If -warn declarations is specified, do not issue
diagnostic for use of IMPLICIT NONE.
+ Eliminate internal compiler error for EOSHIFT with
constant array argument.
+ Eliminate internal compiler error for program fragment
that is "ifdef-ed out".
+ 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.
+ Report error for assumed-size array passed as actual to
deferred-shape array.
+ Eliminate compiletime error for use of AIMAG in
initialization expression when -real_size 128 is
specified.
+ Eliminate internal compiler error for format in a PRINT
statement being an expression with concatenation.
+ DFOR$PREFETCH, DFOR$PREFETCH_MODIFY, DFOR$PREFETCH_
EVICT_NEXT intrinsics now supported for Alpha
processors.
+ Generate correct values for a PARAMETER array whose
element values are computed in an implied DO loop
involving indexing into another PARAMETER array.
+ Correct bad parse of .NE. as record field name.
+ Allow a dummy argument that has an INTENT attribute
specified to be specified in a NAMELIST list.
+ Give standards warning for kind mismatch between source
and pad arguments in RESHAPE.
+ Long source lines are now correctly compiled when
standards checking is requested (warning is still
given.)
+ Correct problem with incorrect error given for a
particular complex module renaming case.
+ Allow as an extension (as does Compaq Fortran 77) a
LOGICAL argument to an intrinsic which expects INTEGER.
+ Correctly parse format which contains ">" characters and
a variable format expression.
+ Eliminate internal compiler error for a particularly
complex and deeply nested structure reference in an IF.
+ Don't give error for passing section of an assumed size
array to a deferred shape array.
+ Improve compilation speed for certain large DATA
statements.
+ Eliminate internal compiler error for a certain
complicated FORALL.
+ Correct problem with PUBLIC/PRIVATE attributes of a
COMMON block in a MODULE.
+ Allow (A .EQ. .NOT. B) (an extension).
+ Correct problem with some COMPLEX*32 initialization
expressions.
+ Eliminate spurious unused variable diagnostic for
variable used in pointer assignment.
+ Correct problem where asking for standards checking
disabled /define (-D)
+ Fix a case where two NaNs sometimes compared as equal.
+ 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.
+ 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.
+ Fix a number of problems with WHERE inside of FORALL.
+ Make defined assignment in FORALL work properly.
+ Generate correct code for CSHIFT of a non-contiguous
array slice.
+ Allow user-defined types to be named BYTE and
DOUBLECOMPLEX.
+ Improve generated code for mixed COMPLEX-REAL
multiplication and division.
+ In array constructors with only one implied-DO, and
nothing else, avoid creating an unnecessary temp.
+ Allow SIZEOF(allocatable-array)
+ Improve generated code for SIZEOF(array)
+ Allow directory names specified with -module to be
longer than 23 characters.
+ 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.
+ 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.
+ Re-allow complex constants to be passed by value.
The real and imaginary parts are passed as separate
arguments.
+ Allow character array valued function as a format
specifier.
+ Allow debugging of a character function whose length
is computed based on the length of a passed-length
character argument.
+ Solve a set of problems where the length of a character
function is computed using a dummy array argument.
+ 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.
+ Eliminate internal compiler error for structure with
%FILL component in module procedure.
+ When standards checking is requested, do not give a
warning for fixed-form source line exactly 72 columns
long.
+ 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.)
+ 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.
+ Eliminate internal compiler error for declaration of
a derived type array with an initializer that is an
implied-DO array constructor.
+ Eliminate inappropriate error message for initialization
expression of an implied-DO array constructor of length
zero.
+ When standards checking is enabled, give one warning,
not three, for a !DEC$ ATTRIBUTES directive.
+ Generate correct code for certain cases involving
overloading of the .AND. and .OR. operators.
+ Allow Variable Format Expression in a character literal
when the I/O list has a subscripted array element.
+ Eliminate compiler abort with incorrect program that
names the enclosing program unit in an ONLY clause.
+ Allow the extension syntax '101'B for a binary literal.
+ Correctly handle whitespace in -omp conditional
compilation lines.
+ Fix problem where $INTEGER directive was not being
properly handled.
+ Add support for KIND= keyword in MINLOC/MAXLOC
+ Add suppprt for KIND= keyword in various string
intrinsics.
+ Prevent compiler abort for incorrect attempt to pass
unsupported datatypes by value.
+ Properly report invalid declaration EXTERNAL,INTEGER and
recover so that remainder of program is properly parsed.
+ Give standards warning for non-standard placement of
NAMELIST.
+ Eliminate internal compiler error for particular type
of concatenation of substrings when Fortran 95 standards
checking is requested.
+ When converting a negative REAL value to COMPLEX, use
+0.0 as the imaginary part rather than -0.0.
+ Allow PARAMETER constant in ALIGN= specification of
!DEC$ PSECT.
+ Don't give shape mismatch for correct-shape RESHAPE in
initialization expression.
+ Don't give inappropriate alignment warnings for certain
convoluted EQUIVALENCE/ COMMON combinations.
+ Eliminate internal compiler error for initialization
expression which contains a constant expression in a
structure constructor.
+ Allow EXTERNAL :: FOO
o The following changes were made to the Fortran 77 compiler:
- -fast sets "-arch host -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.
INSTALLATION NOTES:
The system does not need to be rebooted after this kit is installed.
To install the ECO kit, perform the following steps:
1. Log in as superuser (login name root) to the system where you
will update Compaq Fortran.
2. Create a temporary directory to hold the unpacked distribution
files and change to that directory:
mkdir forteco
cd forteco
3. Copy the ECO kit distribution file into the current directory:
cp /xxx/xxx/DFA531.tar
where /xxx/xxx/ is the location of the kit file.
4. Unpack the ECO kit distribution file into the current directory:
tar xmpf DFA531.tar
5. Use the setld command to perform the installation:
setld -l .
The subsets available are:
DFABASE531 Compaq Fortran 95 and 77 V5.3 ECO 01 for
Tru64 UNIX Alpha Systems
DFACOM531 Compaq Fortran X5.3 (ECO1) Tools and their
Man page
DFADOC531 Compaq Fortran V5.3 ECO 01 Release Notes
and Man Pages
DFARTL389 Compaq Fortran Runtime Support for Tru64 UNIX
Systems
OTABASE207 Compaq Compiled Code Support Library #207
HPFLIBS180 High Performance Fortran Run-Time Libraries
For further installation details, see the Compaq Fortran Installation Guide
for Tru64 UNIX Systems. After installation, you may remove the
temporary directory created in step 2.
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:
dfa531.README
dfa531.CHKSUM
dfa531.CVRLET_TXT
dfa531.tar
dfa531.CVRLET_TXT
|