DEC Fortran FORTAVE02071 F77 _ F90 Compiler Alpha ECO Summary
NOTE: An OpenVMS saveset or PCSI installation file is stored
on the Internet in a self-expanding compressed file.
The name of the compressed file will be kit_name-dcx_vaxexe
for OpenVMS VAX or kit_name-dcx_axpexe for OpenVMS Alpha.
Once the file is copied to your system, it can be expanded
by typing RUN compressed_file. The resultant file will
be the OpenVMS saveset or PCSI installation file which
can be used to install the ECO.
Copyright (c) Digital Equipment Corporation 1998. All rights reserved.
PRODUCT: DIGITAL Fortran for OpenVMS Alpha Systems V7.1
COMPONENT: Fortran 77
Fortran 90
OP/SYS: OpenVMS Alpha V6.1 through V7.1
SOURCE: Digital Equipment Corporation
ECO INFORMATION:
ECO Kit Name: FORTAVE02071
ECO Kits Superseded by This ECO Kit: FORTAVE01071
ECO Kit Approximate Size: 27635 Blocks
PCSI file - 27568 Blocks
Kit Applies To: DIGITAL Fortran V7.1
System/Cluster Reboot Necessary: No
NOTE: In order to receive the full fixes listed in this kit,
the following remedial kits also need to be installed:
FORRTLAVE01071
ECO KIT SUMMARY:
An ECO kit exists for DIGITAL Fortran V7.1 on OpenVMS Alpha V6.1 through
V7.1. This kit addresses the following problems:
NOTE: This kit contains a partial update of DIGITAL Fortran V7.1 (including
DIGITAL Fortran 77 V7.1 and DIGITAL Fortran 90 V7.1) to correct problems
discovered in the compilers since the V7.1 release. DIGITAL Fortran V7.1
must be installed on the system before installing this update. You must
also install ECO kit FORRTLAVE01071, which provides Run-Time Library
support for the Fortran 95 CPU_TIME function. FORTAVE02071 supersedes
and includes all corrections from the earlier ECO kit FORTAVE01071.
Complete release notes, including those for the V7.1 release, are provided
by the kit in SYS$HELP:FORTRAN.RELEASE_NOTES, FORTRAN_RELEASE_NOTES.PS
and FORTRAN_RELEASE_NOTES.DECW$BOOK.
The following changes and corrections were made to the DIGITAL Fortran 90
compiler in FORTAVE02071:
o The new /ASSUME=[NO]ALTPARAM compile command qualifier
selects how the compiler treats the non-standard, non-
parenthesized PARAMETER syntax, for example PARAMETER
N = 1. If /ASSUME=ALTPARAM is in effect, the alternate
PARAMETER syntax is accepted. If /ASSUME=NOALTPARAM
is in effect, the alternate PARAMETER syntax is
not accepted and such statements will typically be
treated as assignment statements. The default is
/ASSUME=ALTPARAM.
o The new /ASSUME=[NO]MINUS0 compile command qualifier
selects how the SIGN intrinsic treats the case of
SIGN(X,-0). If /ASSUME=MINUS0 is in effect, the result
of SIGN(X,-0) is -X, in accordance with the Fortran
95 standard. If /ASSUME=NOMINUS0 is in effect, the
result is X, which is consistent with what Fortran
77 implementations typically produce. The default
is /ASSUME=NOMINUS0, which is a change from earlier
versions of DIGITAL Fortran 90. We made this change
because many of our customers' applications were getting
unexpected results with the MINUS0 semantics. (Note that
this setting is applicable only if /FLOAT=IEEE is in
effect.)
o Using ASSOCIATED with F90 pointer now gives correct
answer.
o Using vector subscripts in MATMUL now gives correct
answer.
o Passing %REF argument to a routine with explicit
INTERFACE no longer gets an internal error.
o CSHIFT of an array pointer contained within a derived
type no longer gets an internal error.
o Using assignments in a defined generic assignment
subroutine when the subroutine is not RECURSIVE now
gets an error.
o Parameter constant is allowed as argument of a LOC
intrinsic.
o Using UNION within derived type now gets correct result.
o Having EQUIVALENCEd character array elements within a
MODULE no longer gets internal error.
o Duplicate SAVE statement no longer gets an error.
o Parameter constant can be used as case-value in a SELECT
CASE statement.
o ALIAS attribute can now be specified in a cDEC$
ATTRIBUTES directive for an identifier that has not
been declared EXTERNAL (EXTERNAL is assumed).
o Interface with optional function argument is now
resolved properly.
o Extra trailing blanks are now allowed and ignored
when used in specifier of OPEN statement, e.g.,
FORM='formatted '.
o INTEGER*2 array now gets correct result when compiled
with /INTEGER_SIZE:16.
o Fix a bug related to module importing with modules that
contain PRIVATE statement.
o Parameter constant defined in a MODULE is now imported
when its use is only in a variable format expression.
o Parameter constants are allowed in a structure
constructor.
o A derived type component having the same name as a
common block no longer gets an internal error.
o A non-standard warning is issued if the first argument
of a GENERIC assignment procedure is not INTENT(OUT) or
INTENT(INOUT).
o Fix a bug related to module importing with modules that
contain a PRIVATE statement.
o Using a structure constructor to initialize a multi-
dimensional array component of a derived-type no longer
causes an internal error.
o The /ASSUME=FPCONSTANT option now works correctly for
assignment to double complex variables.
o Having a D line as the first non-comment line after a
conditional $ENDIF directive no longer gets an error.
o Using substring of a character array as argument of
ICHAR intrinsic no longer gets internal error
o Pointer assignment of an array of character substrings
(e.g. p=>a(:)(2:4)) now gets correct result
o Using array transformation intrinsics such as PACK,
SPREAD, and RESHAPE with array of derived-type as
argument in a PRINT statement now gets correct results
o An incorrect statement: "IF (ABS(I).GT 1) I=0" now gets
an error message
o An incorrect statement: "CHARACTER(LEN=1), PARAMETER ::
CPSCLR = '' ''" now gets an error message
o Having a PRIVATE, EQUIVALENCE variable in a module no
longer causes compile time segmentation violation
o Specifying ONLY on one variable in a COMMON block now
only declares the one variable not the entire variables
in the COMMON block
o Allow user defined operator to be used as the format
character expression in a PRINT or READ statement
o Using modules and the AUTOMATIC statement in the same
routine no longer gets internal error
o Module variables with EXTERN attributes now work
properly
o Increase an internal limit so that large programs no
longer get the "text handle table overflow" message
o Flag incorrect usage of an entry dummy argument in an
executable statement before its declaration in the entry
statement
o Disallow optional return dummy argument following other
OPTIONAL dummy arguments
o An invalid WRITE statement no longer gets an internal
error
o Allow passing NULL intrinsic function as argument to
other routines
o Allow AUTOMATIC variables to be used in an EQUIVALENCE
statement
o Using a structure constructor with scalar value to
assign an array element now produces correct result
o Using an array constructor with integer value to
initialize a real or complex array now produces correct
result
o Flag common block name and routine name conflict
o Fix elemental character function with varying length
o CPU_TIME now returns CPU, not elapsed time. (Requires
FORRTL V7.1 ECO 1 library.)
o The debugger no longer reports a DST corruption error
for certain separately compiled programs which use a
module that defines an allocatable array.
o A compile-time evaluation of 0.0**0.0 (when /CHECK=POWER
is in effect) now always results in a compile-time error
instead of quietly giving zero.
o DPROD of two REAL(8) arguments no longer results in a
compiler bugcheck.
o The compiler no longer bugchecks if a user-defined type
and a structure have the same name.
o Derived type initialization of an array component now
works.
o The compiler now correctly diagnoses incorrectly spelled
OPEN keyword values.
o SAVE in main program no longer results in warning.
o The compiler no longer bugchecks for syntax of the form
"character,allocatable :: c*7(:)".
o The compiler no longer incorrectly parses certain
expressions involving record fields and binary
operators.
o %FILL is now allowed as a field name when :: syntax is
used in a STRUCTURE field.
o NEAREST with arguments of different KINDs no longer
results in a standards warning.
o All internal compiler limits on the length of a NAMELIST
have been removed.
o The compiler now allows SIZEOF of a field of an assumed-
size record array.
o The compiler now correctly parses an array named SELECT.
o A standards warning for concatenation of passed-length
character arguments is no longer given (was non-standard
in F77, but not in F90).
o Pointer assignment now works properly when the target is
a component of an allocatable array with a lower bound
other than 1.
o The compiler no longer bugchecks if a Hollerith literal
is passed to a CHARACTER(*) argument in the same file.
o A labelled DO with optional comma is now properly
parsed.
o Derived type members whose name start with "fill" are
now properly parsed.
o ONLY is no longer ignored for module variables.
o In a character literal VFE, variable names may now have
underscores.
o %ref is no longer ignored when passing a character
literal.
o RECORDs are now allowed in NAMELIST.
o TYPE definition with type name in parentheses now gives
standards warning.
o Consecutive operators now give standards warning where
appropriate.
o A CHARACTER, POINTER array whose character length is
given as LEN of a passed-length CHARACTER dummy argument
is now allowed.
o Unintended recursion in INTERFACE assignment is now
diagnosed.
o An ELEMENTAL function is no longer allowed to have an
adjustable length value.
o ALLOCATE of a REAL*16 array no longer causes a compiler
bugcheck.
o Operators such as ==, etc. no longer cause standards
warnings.
o ASSOCIATED() of a NULLIFIYed pointer now returns
.FALSE..
o An array argument to a statement function is now
properly diagnosed as erroneous.
o The ES format edit descriptor is no longer flagged as
non-standard.
o The compiler no longer bugchecks in certain situations
when the SIGN intrinsic is used with a VAX floating
array argument.
o The compiler now correctly parses programs with an array
named TYPE.
o The compiler now allows an unlimited number of actual
and formal routine arguments. Note that the IARGCOUNT
intrinsic will return the low 8 bits only of the
argument count.
o A user-defined operator is now allowed as the format
specifier in an I/O statement.
The following changes and corrections were made to the DIGITAL
Fortran 90 compiler in FORTAVE01071:
o Significantly improve compilation speed of sources which
contain many USEs of the same module.
o Fix SIGN intrinsic to handle -0. (Fortran 95 feature)
o Fix LOC intrinsic and %LOC of a derived type field.
o Fixed debug information for dynamic character variable
(such as character*(i) c).
o Add debugging support for integer (Cray) pointers and
allocatable arrays.
o Fix storing to the return value of a function returning
character in a containing internal routine.
o Fix Nullification of a character*n pointer argument.
o Fix using passed length argument in a containing
internal routine.
o Fix compiler abort when a source line is longer than
1024 characters in freeform source file.
o Fix using IOLENGTH in a INQUIRE statement.
o Fix FORALL problem of the form "X(X(I)) =."
o Fix contained functions returning a implicitly
initialized derived-type.
o Better diagnostics for invalid programs.
o Fix compiler abort when using Nullification of a pointer
in a MODULE.
o Fix a certain types of USE of a MODULE with rename list.
o Fix compiler abort when using do-loop style implicitly
initialized derived-types in a MODULE.
o Sign-extending INTEGER*2 parameter constants.
o Flag invalid nested internal procedures.
o Fix compiler abort of USE of a MODULE with namelist
variables in rename list.
o Issue a warning message for a intrinsic with wrong
argument type and treat it as an external.
o Issue a warning message for having a SAVE common block
data object.
o Fix compiler abort of USE of a MODULE with namelists.
o Fix using SIZEOF(common_block_array) in a PARAMETER
statement.
o Fix using READONLY keyword as first keyword in an OPEN
statement.
o Allow record name to be the same as a structure name.
o Fix parameter character constant with embedded NULL
character.
o Fix compiler abort when same name used as a structure
and derived type.
o Allow BLOCKSIZE keyword in an INQUIRE statement.
o Allow a record in a SAVE statement.
o Allow a module to have the name "procedures".
o Do not flag IABS intrinsic function as nonstandard.
o Do not flag DOUBLE COMPLEX as nonstandard.
o Put out an error message for ptr => pack(...).
o Issue an error message for invalid derived type
parameter constant.
o Fix compiler abort when passing an array constructor as
an actual argument.
o Fix using derived-type components that are same as
intrinsic names.
o Fix an incorrect warning about "explicit-shaped array
is being passed to a routine that expects a pointer or
assumed-shape array".
o Fix incorrect results when compiled a program with -
assume:dummy_aliasing.
o Do not flag BOZ constant as nonstandard.
o Do not flag Z format as nonstandard.
o Put out a standard warning for using character constant
in DATA statement.
o Fix using TRANSFER in initialization.
o Fix a problem with user defined assignment statement.
o Issue an error message when passing or receiving an
optional argument by value.
o Fix an invalid message about return value of a function
is not defined when the function returns an initialized
derived type.
o Fix a compiler abort with "text handle table overflow"
message.
o Fix a compiler abort using a SAVE statement.
o Fix a problem when an existing operator is overloaded.
o Fix argument checking of intrinsic subroutines.
o Fix generic interface of elemental functions.
o Issue an argument mismatch warning message for using
an integer with a statement function that takes real
argument.
o Fix compiler directives processing.
o Fix a compiler abort using an invalid PARAMETER array.
o Issue an error message for SAVE of an ENTRY result
variable.
o Fix using UNION within derive type.
o Fix a compiler internal error when using C and REFERENCE
attributes on a function name.
o Fix a compiler internal error when using ASSOCIATED of a
function returning a pointer.
o Add support for passing complex by value.
o Fix pointer assignment with a character substring.
o Allow using ICHAR in an array constructor within the
initialization part of an array declaration.
o Fix a problem with using UNION declaration within the
derived type.
o Allow exporting of a module procedure which has a name
that is the same as a generic name.
o Fix a problem with using user defined assignment
operation.
o Allow specifying NaNs in the PARAMETER statement.
o Allow D source line to continue a non-D source line.
o Fix a problem in array initialization processing.
The following changes and corrections were made to the DIGITAL Fortran 77
compiler in FORTAVE02071:
o Allow EXTERNAL foo where foo is a pointee (function
/subroutine).
o For REWRITE, make sure small constants are promoted to
default integer size.
o Attribute NAMELIST code to establish the block to the
NAMELIST statement (for debugging).
o Fix "POINTER(P, ARRAY(COMMON_ARRAY(IDUMMY),IDUMMY2))".
o Prevent ASF name from being passed as actual argument.
o Warn when a statement function is passed an array as an
actual argument.
o Set "SYNTAX" when "/STANDARD=SEMANTICS" is requested. Do
not set "MIA" when "/STANDARD=ALL" is requested.
o Fix a random bug when a listing is requested.
o Fix a bug where a symbol is incorrectly listed as used
before defined.
o Give warning for assignment to an active DO loop index
variable.
o Disallow %descr('foo') as I/O list element (check the
mechanism).
The following changes and corrections were made to the DIGITAL
Fortran 77 compiler in FORTAVE01071:
o Be more selective on bounds checking on DATA statements
(but ALWAYS check that we are "inside" the array, even
if individual subscripts are not).
o Get 0**0 (and 0.0**0.0, etc.) correct with /check=[no]power.
o Implement the /VERSION switch (compiler, GEM, and system
version information).
o Fix SCA (/ANA) for nested include files ending together.
o Allow INTRINSIC statement after PARAMETER statement
using the intrinsic name.
o Do argument (type) checking for mechanism general
(character array as actual).
o Fix two bugs in /warn=argument. Check function types,
even if no arguments. Get function type correct if
declared AFTER the actual function statement.
o Put out better message for function value not defined by
end of function.
o Allow pointees to be used in ASF and VFE context
(uplevel references).
INSTALLATION NOTES:
1. Log in to the SYSTEM username or some other username with the CMKRNL,
SYSPRV and SYSLCK privileges enabled.
2. Verify that you have DIGITAL Fortran V7.1-1 installed and FORRTL
V7.1 ECO 1 installed. Type the following command:
$ PRODUCT SHOW PRODUCT FORTRAN
The output should appear as follows:
----------------------------------- ----------- ------------
PRODUCT KIT TYPE STATE
----------------------------------- ----------- ------------
DEC AXPVMS FORRTL V7.1-427 Full LP Available
DEC AXPVMS FORTRAN V7.1-1 Full LP Available
----------------------------------- ----------- ------------
2 items found
If the "FORTRAN" line does not appear as shown above, you must
first install DIGITAL Fortran V7.1 from the Software Product
Library CD-ROM and then go back to step 1. If the "FORRTL" line
does not appear as shown above, with a version number V7.1-427 or
higher, you must install the ECO kit FORRTLAVE01071 which can be
obtained from the same source as this ECO kit (or
http://www.digital.com/fortran/downloads.html)
3. If the ECO kit file you have has a name which ends in .PCSI-DCX_AXPEXE,
it is in a self-extracting compressed format - RUN the file (on an
OpenVMS Alpha system) to expand it. The installable kit file name is:
DEC-AXPVMS-FORTECO_02_071-V0701-2-4.PCSI
4. Perform the installation using the POLYCENTER Software Installation
(PCSI) Utility by typing the command:
$ PRODUCT INSTALL FORTECO_02_071 /SOURCE=disk:[dir] /HELP
where "disk:[dir]" is the disk and directory containing the ECO kit
.PCSI file.
5. PCSI will display the following text:
The following product has been selected:
DEC AXPVMS FORTECO_02_071 V7.1-2 Patch (maintenance update)
Do you want to continue? [YES]
Press RETURN to continue.
6. PCSI will display additional text, ending with the following:
Execution phase starting ...
The following product will be installed:
DEC AXPVMS FORTECO_02_071 V7.1-2 Patch (maintenance update)
Portion done: 0%...50%...80%...90%...100%
If, when you installed DIGITAL Fortran V7.1, you chose not to install
both Fortran 90 and Fortran 77, additional informational messages will
be displayed noting files that are not being updated.
PCSI will display:
The following product has been installed:
DEC AXPVMS FORTECO_02_071 V7.1-2 Patch (maintenance update)
%PCSI-I-IVPEXECUTE, test procedure executing ...
%PCSI-I-IVPSUCCESS, test procedure completed successfully
DEC AXPVMS FORTECO_02_071 V7.1-2: DIGITAL Fortran for OpenVMS Alpha
Systems V7.1 ECO 02
Type HELP FORTRAN Release_notes for release notes location
Execute SYS$STARTUP:FORT$STARTUP.COM on all other VMScluster nodes
7. If your system is part of a VMScluster, execute the following commands on
all other Alpha VMScluster nodes:
$ INSTALL REPLACE SYS$LIBRARY:DCLTABLES
$ @SYS$STARTUP:FORT$STARTUP
Inform all users that they must either log out and in again to pick up
the updated FORTRAN and F90 command definitions or type the command:
$ SET COMMAND /TABLES=SYS$LIBRARY:DCLTABLES
If this is not done, FORTRAN and F90 compilations will fail.
8. Read the release notes, which are provided in the following files:
SYS$HELP:FORTRAN.RELEASE_NOTES (text)
SYS$HELP:FORTRAN_RELEASE_NOTES.PS (PostScript(TM))
SYS$HELP:FORTRAN_RELEASE_NOTES.DECW$BOOK (Bookreader)
Inform users of the release notes location.
A reboot is not required after installation.
If you have problems installing this ECO kit, please report the problem
to your local DIGITAL support center or send Internet mail with details
(and a log of the installation attempt) to fortran@digital.com. It will
be helpful to redo the installation, adding the qualifiers /LOG/TRACE to the
PRODUCT INSTALL command - this will generate additional diagnostic output
which should be included in your problem report.
For more information on all DIGITAL Fortran products, please visit our web
This patch can be found at any of these sites:
Colorado Site
Georgia Site
Files on this server are as follows:
dec-axpvms-forteco_02_071-v0701-2-4.README
dec-axpvms-forteco_02_071-v0701-2-4.CHKSUM
dec-axpvms-forteco_02_071-v0701-2-4.pcsi-dcx_axpexe
|