KIT NAME: FORTAVE01075 --------- OLD PRODUCT: Compaq Fortran V7.5 for OpenVMS Alpha ------------ Compaq Fortran 77 V7.5-197 Compaq Fortran V7.5-1961 NEW PRODUCT: Compaq Fortran V7.5 ECO 1 for OpenVMS Alpha ------------ Compaq Fortran 77 EX7.5-197 Compaq Fortran V7.5-2630 APPRX BLK SIZE: 55520 blocks --------------- Compaq Cover Letter for Compaq Fortran V7.5 for OpenVMS Alpha ECO 1 ECO Kit FORTAVE01075 Description ---------------------------------- This kit contains an update of Compaq Fortran V7.5 (including Fortran 95/90 and Fortran 77 compilers) to correct problems discovered in the compilers and run-time library since the V7.5 release. You must have Compaq Fortran V7.5 installed before installing this update. o The following changes were made to the Fortran 95/90 compiler: o Disallow situation where, through renaming, the same entity could be known by more than one local name in a scoping unit. o Allow REAL(16), COMPLEX(8, 16), derived types to be passed by value on all platforms. o Eliminate internal compiler error for initialization expression involving array constructor PARAMETER. o Correct a problem where some old-format module files could not be used by a newer compiler. o Allow the full appropriate range of signed integer constants which contain an explicit kind specifier. o Promote mixed-kind arguments to shift intrinsics to INTEGER(8) as needed. o Eliminate internal compiler error for INTERFACE block defining function with ALLOCATABLE result. o Disallow an array from having the same name as a derived type or STRUCTURE. This is not legal in Fortran 90, as syntactically it looks like a structure constructor, but it was allowed in Compaq Fortran 77 (which didn't have structure constructors.) In some cases, the compiler issued inappropriate and different error messages and/or an internal compiler error. o In structure constructor, allow typeless PARAMETER constant to take type from context. o Eliminate internal compiler error for TRANSFER of long character literal to numeric array. o Generate correct result of TRANSFER of array constructor in initialization expression. o Correct problem with visibility of sibling contained procedure as specification function. o Improve error message for I/O list with extraneous parenthesis. o Allow LOG and LOG10 to be passed as actual arguments. Eliminate spurious diagnostic for use of non- default kind in CASE that matches SELECT CASE. Eliminate internal compiler error for EOSHIFT of INTEGER(2) array. Give an error for an empty array constructor. o Allow combination of null ONLY list (ONLY:) and non-null ONLY list in a later USE. o Disallow COMPLEX*16 second argument to DCMPLX, COMPLEX*32 second argument to QCMPLX. o Give error for null CASE range. o Correct import of COMMON variable in USE, ONLY in contained procedure. o Don't allow parenthesization of expression hide compile-time overflow detection. o Improve detection of duplicate signature detection for generics. o Make ANINT generic. o Correct problem involving passing a discontiguous pointer array slice as an actual argument where a temporary is needed but wasn't being created. o Give standards warning for use of character literal constant in Hollerith context in WHERE. o Eliminate possible internal compiler error caused by attempt to put out ARG_TEMP_CREATED diagnostic message. o Eliminate internal compiler error for USE of blank COMMON in a module. o Don't give standards warning for use of host associated PARAMETER constant as a constant kind specifier in a statement function. o Give standards warning for consecutive commas in an argument list. o Eliminate internal compiler error for omitted optional argument to PURE function in specification expression. o Give standards warning for comma between control list and I/O list. o Make PACK directive take precedence over /ALIGN compiler switch. Add 8 as a PACK option. o Correct problem involving import of COMMON from a module where different imports make different sets of symbols visible. o When calling an intrinsic that needs to know the size of default integer (eg. DATE_AND_TIME), make sure that we look at the effects of !DEC$ INTEGER and OPTIONS /[NO]I4. o Disallow character literal scalar to match character*1 array of same length in argument lists. o Disallow use of an array as a substring bound. o Correct problem involving nested renames. o Allow ALLOCATED to be used on an ALLOCATABLE derived type component. o Do not automatically deallocate on exit allocatable components of INTENT(OUT) dummy arguments that have initialization. o Allow logical operators to be extended with non-numeric argument types. o Improve way that source filespecs are handled so that the compiler lets the OS determine what the syntax of a valid filespec is, rather than looking for what it thinks is a delimiter. In particular, embedded quotes are now properly handled. o Avoid corrupting descriptor for allocatable array dummy argument when debugging information was requested. The usual symptom of this was an inappropriate array bounds violation error. o Correct problem where ALLOCATED on an allocatable component passed as an actual argument might not return the correct result. o For INTENT(OUT) allocatable component dummy arguments, deallocate them in the prologue of only those entry points where the component is in the argument list. o If a compiler-generated external name would exceed the maximum length supported by the platform's linker, shorten it and give a warning. o Disallow passing an element of a POINTER array to a POINTER argument. o Allow an pointer to derived type with allocatable component to be initialized to NULL(). o Eliminate spurious shape conformance error message for nested MATMUL. o Disallow "PRINT (101)". o Correct miscellaneous ASSOCIATED problems. o Eliminate I/O list-format synchronization problems caused by inappropriate implied-DO loop collapsing when format contains VFEs. o Disallow any statements from appearing between a SELECT CASE and the first CASE. We were allowing FORMAT and DATA here. o F95 Interp 80 - Do not allow a datatype to be implicitly assigned to what looks like a function reference to a host-associated EXTERNAL. o Do not give standards warning for use of BOZ constant as repeat count in DATA initializer when a regular error would have been given anyway. o Improve and correct diagnostics reflecting F95 interp 70. o Correct behavior to reflect F95 interp 72 relating to generics and elemental references. o Correct behavior to reflect F95 interp 83 regarding scope of implied-DO loop variable in array constructors. o F95 interp 70; allow length specification of char-len-param-value or array spec to be a specification expression if object is automatic. o Allow KIQINT, KIQNNT to be passed as actual arguments. o Add F95 standards checking for F2K ehancements. o Correct problem where if a module defines a derived type and operators on that type, but a USE imports ONLY the type and not the operator, the compiler still makes the operator visible. o Correct name of external math library routine used when KIXINT is passed as an actual argument. o Diagnose as non-standard the use of a non-intrinsic elemental as an actual argument. o Allow passing a PURE procedure as an actual argument when the corresponding dummy is not declared PURE. o If a routine name is explicitly declared INTRINSIC, do not assume EXTERNAL if argument types don't match. o Change compiler to assume that dummy arguments with TARGET attribute are aliased in all cases, not just for pointer assignments. o Disallow OPTIONAL dummy argument for DIM argument to DIM, etc. o Properly propagate TARGET attribute to ALLOCATABLE subcomponents of POINTER object. o Correct visibility problems for COMMON variables in a module in the presence of only and renames. o Detect invalid case of global symbol referred to by two names through nested rename. o More changes to accomodate F95 interpretation 70 dealing with what is allowed (or not) in an automatic bounds or character length expression. o Properly report error (instead of internal compiler error) when ALLOCATED is used on non- ALLOCATABLE derived type that contains an ALLOCATABLE component. o More work for COMMON variable with only and rename. o In FORALL, don't confuse subscript name with a derived type component of the same name. o Support %FILL in STRUCTUREs in MODULEs. o Correct problem with defined operator visibility. o Eliminate internal compiler error for reference to PARAMETER structure array in structure constructor. o Properly support use of pointer-returning functions in ASSOCIATED. o Eliminate spurious standards warning for dataype of PURE function used in specification expression. o Disallow passing array section to ALLOCATABLE argument. Disallow passing assumed-size array to elemental procedure where the shape is required. o Eliminate internal compiler error for nested TRANSFER in initialization expression. o Disallow use of scalar in structure constructor for allocatable component. o Do not issue "unbalanced parentheses" diagnostic for code that is not being compiled due to !DEC$ IF. o Correct problems with LBOUND, UBOUND and SHAPE of array components of nested derived type PARAMETERs. o Eliminate internal compiler error when the compiled module referenced in a nested USE can't be opened. Complete release notes, including those for the V7.5 release, are provided by the kit in SYS$HELP:FORTRAN.RELEASE_NOTES Installation Overview --------------------- 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 ZIPEXE, that is a compressed archive. RUN the file to expand into two .PCSI kits. For example, if the kit file is FORTPKG_AVE01V75.ZIPEXE: $ RUN FORTPKG_AVE01V75.ZIPEXE Two files will be created: DEC-AXPVMS-FORRTL-V0705-3-1.PCSI DEC-AXPVMS-FORTECO-V0705-2630-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 FORRTL /version=7.5-3 /SOURCE=disk:[dir] /HELP $ PRODUCT INSTALL FORTECO /version=7.5-2630 /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. A reboot is not required after installation. If you have problems installing this ECO kit, please report the problem to your local Compaq support center or send Internet mail with details (and a log of the installation attempt) to fortran@compaq.com For more information on Compaq Fortran products, please visit our web site at http://www.compaq.com/fortran Copyright 2002 Compaq Computer Corporation COMPAQ Registered in U.S. Patent and Trademark Office. Confidential computer software. Valid license from Compaq or authorized sublicensor required for possession, use or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor's standard commercial license. This ECO has not been through an exhaustive field test process. Due to the experimental stage of this ECO/workaround, Compaq makes no representations regarding its use or performance. The customer shall have the sole responsibility for adequate protection and back-up data used in conjunction with this ECO/workaround.