You are on page 1of 111

____________________________________________________

Compaq Visual Fortran Release Notes


September 2000
This document contains information about Compaq
Visual Fortran.
Software Version: Compaq Visual Fortran
Version 6.5
Compaq Computer Corporation
Houston, Texas
________________________________________________________________
September 2000
Compaq Computer Corporation makes no representations
that the use of its products in the manner described in
this publication will not infringe on existing or future
patent rights, nor do the descriptions contained in this
publication imply the granting of licenses to make, use,
or sell equipment or software in accordance with the
description.
Possession, use, or copying of the software described in
this publication is authorized only pursuant to a valid
written license from Compaq or an authorized sublicensor.
Compaq shall not be liable for technical or editorial
errors contained herein. The information in this document
is subject to change without notice.
1997-2000 Compaq Computer Corporation
COMPAQ and the Compaq Logo are registered in the U.S.
Patent and Trademark Office.
AlphaGeneration, AlphaServer, DEC Fortran, OpenVMS,
and Tru64 UNIX are trademarks of Compaq Information
Technologies, L.P.
Microsoft, NT, Visual Basic, Visual C++, and Windows are
either trademarks or registered trademarks of Microsoft
Corporation in the United States and other countries.
Intel and Pentium are trademarks of Intel Corporation.
AMD and Athlon are trademarks of Advanced Micro Devices, Inc.
Adobe and Acrobat are trademarks of Adobe Systems Incorporated.
GLOBEtrotter and FlexLM are trademarks of GLOBEtrotter
Software, Inc.
ISML and Visual Numerics are trademarks of Visual Numerics, Inc.
Other product names mentioned herein may be trademarks of
their respective companies.
This document prepared using DECdocument, Version 3.3-1b.

_________________________________________________________________
Contents
1 Compaq Visual Fortran Version 6.5 Release Notes
1.1 Introduction.................................. 1-2
1.2 General Release Notes......................... 1-3
1.3 Installation Release Notes.................... 1-5
1.4 Version 6 News................................ 1-8
1.4.1 Version 6.5 News.......................... 1-9
1.4.2 Version 6.1 News.......................... 1-12
1.4.3 Version 6.0 News.......................... 1-17
1.4.4 Version 6 Notes........................... 1-22
1.4.5 Version 6.5 Known Problems................ 1-25
1.5 Visual Fortran Documentation Release Notes for
Version 6..................................... 1-26
1.5.1 Version 6.5 Documentation Changes......... 1-27
1.5.2 Version 6.1 Documentation Changes......... 1-27
1.5.3 Initial Index Use and Use With MSDN....... 1-29
1.5.4 PDF Files, LRM HTML Files, and Samples.... 1-30
1.6 Visual Fortran Compiler Release Notes......... 1-32
1.7 Visual Fortran RTL Release Notes.............. 1-41
1.8 Compaq Extended Math Library (CXML) Release
Notes......................................... 1-56
1.9 Developer Studio Release Notes................ 1-57
1.10 Compaq Array Visualizer Release Notes......... 1-66
1.10.1 Compaq Array Visualizer Overview and
Description of Features................... 1-66
1.10.2 Array Visualizer News..................... 1-68
1.10.3 Using the Fortran Array Visualizer from
the Debugger.............................. 1-72
1.10.4 The Fortran Array Visualizer Uses HDF
Libraries................................. 1-74
1.11 Fortran Format Editor Release Notes........... 1-75
1.12 Debugging Related Release Notes............... 1-76
iii

1
_________________________________________________________________
Compaq Visual Fortran Version 6.5 Release Notes
This chapter contains release notes for Compaq Visual
Fortran Version 6.5.
Compaq Visual Fortran conforms to the Fortran 95 Standard,
Fortran 90 Standard, and previous Fortran standards.
Compaq Visual Fortran uses the same robust compiler system
provided with Compaq Fortran on other platforms for Alpha
systems.
Please visit the Compaq Fortran Web page for a wealth
of information about Visual Fortran and Compaq Fortran,
including product descriptions, product updates, frequently
asked questions, knowledge base articles, example programs,
and other information:
http://www.compaq.com/fortran
This chapter contains the following sections:
o Section 1.1, Introduction
o Section 1.2, General Release Notes
o Section 1.3, Installation Release Notes
o Section 1.4, Version 6 News
o Section 1.5, Visual Fortran Documentation Release Notes
for Version 6
o Section 1.6, Visual Fortran Compiler Release Notes
o Section 1.7, Visual Fortran RTL Release Notes
o Section 1.8, Compaq Extended Math Library (CXML) Release
Notes
o Section 1.9, Developer Studio Release Notes
o Section 1.10, Compaq Array Visualizer Release Notes
Compaq Visual Fortran Version 6.5 Release Notes 1-1

o Section 1.11, Fortran Format Editor Release Notes
o Section 1.12, Debugging Related Release Notes
1.1 Introduction
Thank you for choosing Compaq Visual Fortran. These release
notes describe this new release, called version 6.5, of
Compaq Visual Fortran (abbreviated "VF" in what follows):
o VF v6.5 replaces VF v6.1A. There are no released
versions of VF numbered 6.2, 6.3, or 6.4.
o VF v6.5 contains Array Visualizer v1.5 which replaces
Array Visualizer v1.1A. There are no released versions
of Array Visualizer numbered 1.2, 1.3, or 1.4.
o Alpha users should be aware that support for Windows NT
Alpha systems ends December 31, 2000. Releases of Visual
Fortran after Version 6.5 will no longer support Windows
NT Alpha systems.
o Compiling using .MOD files is now much faster. We have
made the .MOD files smaller and faster to search.
________________________ Note ________________________
All .MOD files created by CVF T6.2 Beta 1 or Beta
2 must be recompiled with CVF v6.5 in order to work
properly.
______________________________________________________
o VF v6.5 contains the Fortran COM Server Wizard.
o VF now generates optimized code for the Intel Pentium
III, AMD K6, and AMD Athlon (K7) architectures.
o VF now uses a third-party license management product
called FlexLM to manage concurrent-use licenses. If you
are licensed as a single-use user, this has no effect on
your license and you will see no changes. Concurrent use
license users should refer to the separate, additional
instructions on how to use FlexLM in the appropriate
chapter of the Compaq Visual Fortran Installing and
Getting Started guide.
1-2 Compaq Visual Fortran Version 6.5 Release Notes

For more details, see the sections below:
o Section 1.2, General Release Notes
o Section 1.3, Installation Release Notes
o Section 1.4, Version 6 News
o Section 1.5, Visual Fortran Documentation Release Notes
for Version 6
o Section 1.6, Visual Fortran Compiler Release Notes
o Section 1.7, Visual Fortran RTL Release Notes
o Section 1.8, Compaq Extended Math Library (CXML) Release
Notes
o Section 1.9, Developer Studio Release Notes
o Section 1.10, Compaq Array Visualizer Release Notes
o Section 1.11, Fortran Format Editor Release Notes
o Section 1.12, Debugging Related Release Notes
1.2 General Release Notes
Compaq Visual Fortran (CVF or VF) Version 6.5 is an
enhancement of VF v6.1A, the current shipping product for
both Intel/Win32 and Alpha/NT, and includes patches for
problems fixed since VF v6.1A shipped. VF V6.5 updates the
Compaq Fortran 90/95 compiler, run-time library, certain
IDE pieces, the Array Visualizer, the IMSL libraries,
and VF documentation. VF 6.5 does not update the Compaq
Extended Math Library (CXML) or Microsoft Developer Studio.
Compaq Visual Fortran v6.5 is available in two separate
products:
o Compaq Visual Fortran Standard Edition
The VF Standard Edition contains the VF compiler,
libraries, the Compaq Extended Math Library (CXML, a set
of mathematical subprograms covering, for example, Basic
Linear Algebra, Linear System and Eigenproblem Solvers,
and Sparse Linear System Solvers), and Developer
Studio to support Intel processors running Windows/NT
(including Windows 2000) or Windows 9*.
o Compaq Visual Fortran Professional Edition
Compaq Visual Fortran Version 6.5 Release Notes 1-3

The VF Professional Edition contains the VF compiler,
libraries, CXML, and Developer Studio to support the
Compaq Alpha processors running Windows NT; it contains
the IMSL math and statistics libraries for both Intel
and Alpha; it contains the Compaq Array Visualizer; it
also contains what the Standard Edition contains: the
VF compiler, libraries, CXML, and Developer Studio to
support Intel processors running Windows/NT (including
Windows 2000) or Windows 9*.
This product requires that you be running Windows NT
Version 4.0 with Service Pack 3 or Windows 9* or Windows
2000. Service Pack 3 will be installed by the Visual
Fortran installation if required. VF also requires
Microsoft Internet Explorer V4. Internet Explorer V4
will be installed by the Visual Fortran installation if
required. VF v6.5 contains Microsoft Developer Studio
Studio 98 (Developer Studio v6.0) and is not compatible
with the DevStudio on VF v5.0A (Standard and Professional)
and Microsoft Visual C++ (Intel and Alpha) v5.0. VF v6.5
can co-exist on the same system with Developer Studio V5
products.
VF v6.5 contains bug fixes, performance improvements,
extensions to improve compatibility with Microsoft Fortran
PowerStation, and additional minor features.
The Standard and Professional editions of Compaq Visual
Fortran V6.5 contain complementary products from three
vendors:
o Kuck & Associates, Inc.
Visual KAP, a code restructuring tool that can improve
the performance of computer programs on serial and
parallel Win32 Intel systems (Compaq also sells a KAP
product for Alpha NT systems that is *not included* on
the companion product CD-ROM)
o NAG, Ltd.
NAG Numerical Libraries, numerical and statistical
routines in four libraries (Fortran 77, Fortran 90,
C, and parallel) for Win32 Intel and Alpha systems. The
Alpha libraries will be made available sometime after
CVF v6.1 is released.
o Galaxy Applied Engineering, Inc.
1-4 Compaq Visual Fortran Version 6.5 Release Notes

UGL-Graphics(TM) library, scientific graphics subroutine
libraries for Intel and Alpha systems
o Canaima Software's f90SQL
f90SQL is a library of functions and subroutines that
work as an interface between your Fortran programs and
Microsoft Windows Open Database Connectivity (ODBC) API.
Customers must contact the vendors to purchase a license
and access key for the software on the Companion Product
CD-ROM per instructions with each product on the CD-ROM.
1.3 Installation Release Notes
o The typical installation of Compaq Visual Fortran (CVF)
now includes the Microsoft SDK documentation. This adds
110MB to the disk usage for the typical installation.
o Internet Explorer is required to read HTML Help Viewer
online documentation. When you install Visual Fortran,
the setup installation procedure checks to determine
whether a certain version of Internet Explorer is
installed. If it detects that Internet Explorer is
not installed or an older version is installed, it
asks that you install Internet Explorer. If you do not
install Internet Explorer at this time, you will not
be able to view Visual Fortran online documentation in
HTML Help Viewer and selecting many of the entries in
the Developer Studio Help menu will result in an error
message dialog box being displayed.
If the installation program does not ask and you want to
install Microsoft Internet Explorer 4.0. SP1:
1. On Intel, run \X86\SUPPORT\IE4\{WINNT |
WIN95}\IE4SETUP.EXE from the Visual Fortran 6.5 CD.
2. On Alpha, run \AXP\SUPPORT\IE4\WINNT\IE4SETUP.EXE
from the Visual Fortran 6.5 CD.
If you install Internet Explorer later, you will also
need to reinstall Visual Fortran to view the HTML Help
Viewer online documentation.
Compaq Visual Fortran Version 6.5 Release Notes 1-5

Visual Fortran online documentation requires the minimal
set of Internet Explorer components; for example, it
does not require the Active Desktop.
Testing with Internet Explorer Version 5 shows that it
can be used with Visual Fortran HTML Help Viewer online
documentation.
For information about Internet Explorer installation
issues, please:
1. In a Web browser, open the URL:
http://support.microsoft.com/support
2. Click Products (select Internet Explorer)
3. Either click the displayed links or click Search
Support to locate the desired information.
o If you attempt to install Visual Fortran v6.* using any
of the methods described in "Getting Started - Using
Setup to Install Visual Fortran", and SETUP.EXE in the
root directory fails to run, then try the following:
o On Intel, run \X86\SETUPX86.EXE
o On Alpha, run \AXP\SETUPAXP.EXE
This runs the same installation procedure as SETUP.EXE
in the root directory.
o Visual Fortran v6.* and Microsoft Visual C++ v6.0 are
engineered to co-exist in Microsoft Developer Studio.
However, the versions of all products MUST match or
you will receive version mismatch errors when starting
Developer Studio. An example of the error message you
would receive is:
Cannot load package 'xxxxxx' because its internal version number
,
or the internal version number of one of it components, does not
match the version of the Developer Studio shell.
o If you install Visual C++ V6.0 after VF v6.*, the Visual
C++ installation does not update the Include and Library
paths used by Developer Studio to include the MFC and
ATL paths. You may add these yourself with the following
method:
1. Select the Options... entry from the Developer Studio
Tools menu.
1-6 Compaq Visual Fortran Version 6.5 Release Notes

2. Select the Directories tab.
3. In the "Show directories for:" combo box, select the
type of path you wish to modify (that is, "Include
files").
4. Double-click on the last (empty) entry, and use the
"..." button to browse for the "MFC\INCLUDE" and
"ATL\INCLUDE" directories and add them to the list.
5. Use a similar procedure to add the "MFC\LIB"
directory to the "Library Files" list.
o The CVF and CAV installation procedures register a
number of DLLs and OCXs. CVF registers DFDLG100.DLL,
COMCAT.DLL, SHLWAPI.DLL, WININET.DLL, HHCTRL.OCX,
ITIRCL.DLL, and ITSS.DLL in the windows\system
directory. CAV registers ATL.DLL, HHCTRL.OCX,
ITIRCL.DLL, and ITSS.DLL in the windows\system
directory. CAV registers AVIS2D.OCX and AVISGRID.OCX in
the ArrayVisualizer\Bin directory. Occasionally, these
files are not properly registered by the installation or
become unregistered. To re-register any of these files,
use the Microsoft Register Server utility (regsvr32.exe)
that can be found in your windows\system directory. The
syntax for using Regsvr32.exe is as follows:
Regsvr32 [/u] [/s] file-name
where:
/u - Unregisters the file based on the <File Name>
argument
/s - Registers the file in silent mode, suppressing
all messages
file-name- The complete path and file to be
registered or unregistered
Regsvr32 displays a message box that indicates whether
the registration was successful, unless you specify the
/s option.
o If you receive a message box on running Developer Studio
or the Array Viewer that says:
"The ordinal nnnn could not be located in the dynamic link
library xxxx"
Compaq Visual Fortran Version 6.5 Release Notes 1-7

Search for the file "xxxx" on your system; most often
it will be in your Windows system directory. If the file
has the "Read-only" attribute set, remove the attribute
and reinstall VF and/or the Array Viewer.
o When uninstalling v5.0 or v6.*, you may see a message
box with the title "Remove Shared File?". We recommend
that you select the "No to all" button unless you are
certain that you will not need the file(s). Some of
these files are needed to run VF applications and they
take up only a small amount of disk space.
o If you uninstall v5.0 after installing v6.*, you need
to reinstall v6.* with the same options as the current
installation in order to reset registry entries that are
removed by the v5.0 uninstall.
o If you install multiple Developer Studio products and
later uninstall one or more of them, you may need to
re-install the others.
o If your Alpha system is running V1.0 or V1.1 of DIGITAL
FX!32, you need to disable FX!32 while running the
Visual Fortran installation, or upgrade to FX!32
V1.2 or later. You can find the latest FX!32 at:
http://www.support.compaq.com/amt/fx32/index.html
If you do not, the installation will display an error
similar to:
"Target file C:\WINDOWS\SYSTEM32\*.* is read only. Please remov
e
the read-only attribute form the target file. Retry?"
and the installation will fail.
You may re-enable FX!32 after the Visual Fortran
installation has completed.
1.4 Version 6 News
This section describes Version 6 news and notes:
o Section 1.4.1, Version 6.5 News
o Section 1.4.2, Version 6.1 News
o Section 1.4.3, Version 6.0 News
o Section 1.4.4, Version 6 Notes
1-8 Compaq Visual Fortran Version 6.5 Release Notes

o Section 1.4.5, Version 6.5 Known Problems
1.4.1 Version 6.5 News
Version 6.5 news:
o Compiling using .MOD files is now much faster. We have
made the .MOD files smaller and faster to search.
________________________ Note ________________________
All .MOD files created by CVF T6.2 Beta 1 or Beta
2 must be recompiled with CVF v6.5 in order to work
properly.
______________________________________________________
o New in v6.5 is the Fortran COM Server Wizard. The wizard
generates the Fortran code necessary to implement a
COM server, and allows you to concentrate on the code
that is specific to the component you are creating.
The wizard creates in-process servers (not EXE servers)
and custom or dual interfaces (not Automation - only
interfaces). See the new "Creating a COM Server" chapter
in the online Compaq Visual Fortran Programmer's Guide.
o %VAL and %REF applied to actual arguments now override
any mechanism attributes specified for the matching
dummies in an explicit interface.
o In order to conform with clarified wording in the
Fortran standard, the compiler has been changed so
that when a READ statement encounters an end-of-file
condition, and there is no END= specifier but there
is an ERR= specifier, the ERR= branch is NOT taken.
Similarly, if an end-of-record condition occurs but
there is no EOR= specifier, an ERR= branch is not taken.
A further behavior change, to conform with the standard,
has been implemented. If an EOF (or EOR) condition
occurs and there is not an IOSTAT= or END= (or EOR=
in the case of EOR) specifier, the program is terminated
with an error message.
o VF now generates optimized code for the Intel Pentium
III, AMD K6, and AMD Athlon {K7} architectures.
o New COM routines provided are COMStringFromGUID and
COMIsEqualGUID.
Compaq Visual Fortran Version 6.5 Release Notes 1-9

o New intrinsic procedures include:
INT_PTR_KIND() - returns the INTEGER KIND that holds
an address
POPCNT, POPPAR, LEADZ and TRAILZ intrinsics on X86
processors
Optional KIND argument for LEN, SHAPE, SIZE, LBOUND
and UBOUND
DFOR$PREFETCH, DFOR$PREFETCH_MODIFY, DFOR$PREFETCH_
EVICT_NEXT on Alpha processors
o DLLEXPORT and DLLIMPORT of Variables
In previous versions of Visual Fortran, the only
objects which could have the DLLEXPORT or DLLIMPORT
attribute were procedures and COMMON blocks. VF can now
export/import module variables and arrays.
o Support for reading nondelimited character strings as
input for character NAMELIST items has been added.
o New environment variable FORT_CONVERT_ext acts like
environment variable FORT_CONVERT.ext.
o New exception handling routines are CLEARSTATUSFPQQ and
GETEXCEPTIONPTRSQQ.
o New Visual Fortran Samples (described in Roadmap to the
Visual Fortran Samples) are provided, including:
o COM sample: Adder
o DIALOG sample: Celsicon
o ExceptionHandling samples: ClearFP, Cslexp2, Cslexp4,
GetEptrs, Vbvf1, and Winexcp1
o Isovar sample (ISO varying strings)
o Mixed-language samples, new samples for MASM and
Delphi
o QuickWin samples: Conapp, Dirkeys4, PostMini, and
Resize
o Configuring Concurrent License Wait Time
1-10 Compaq Visual Fortran Version 6.5 Release Notes

If you are using Visual Fortran under a Concurrent Use
(network) license, and all available licenses are in
use when you begin a compilation, the compiler will
wait for the next available license. If the wait time
expires before a license becomes available, compilation
terminates with an error message. The default wait time
is five minutes (300 seconds), but you can change this
on a per-user basis through a registry entry if desired.
To establish a new wait time, create a text file using
NOTEPAD or WordPad and call it LWAIT.REG. The file
should contain the following four lines (the second
line is blank):
REGEDIT4
[HKEY_CURRENT_USER\Software\DigitalEquipmentCorporation\VisualF
ortran\6.5]
"LicenseWaitTime"="nnn"
In this file, replace nnn with the number of seconds
you want the compiler to wait for a license to become
available. A value of 0 (zero) means that the compiler
will not wait and will give an error immediately if
a license is not available when compilation starts.
Negative values are ignored. For example, if you wanted
to change the wait time to ten minutes, specify 600
seconds as follows:
REGEDIT4
[HKEY_CURRENT_USER\Software\DigitalEquipmentCorporation\VisualF
ortran\6.5]
"LicenseWaitTime"="600"
Save the LWAIT.REG file and then double-click on it to
merge it in to the registry. This setting affects you
only-other users of the system may establish their own
values for the wait time, or take the default if it is
undefined.
o Visual Studio 6.0 Service Pack 4
After installing Service Pack 4 of Visual Studio 6.0,
linking DLL libraries may report:
error LNK2001: unresolved external symbol __imp___fpieee_flt
Compaq Visual Fortran Version 6.5 Release Notes 1-11

For a resolution to this problem, see the following
Knowledge Base article on the Visual Fortran web site:
http://www.digital.com/fortran/kb/q1036.html
o The directories \X86\USUPPORT and \AXP\USUPPORT on the
CD-ROM contain the \RUNTIME subdirectory that contains
the redistributable files for CVF v6.5 and CAV 1.5:
...\RUNTIME\VFRUN650I.EXE and ...\RUNTIME\VFRUN650A.EXE
This self-installing executable kit installs the
run-time components needed to run Visual Fortran
applications on X86 and AXP systems respectively which
do not have Visual Fortran installed.
...\RUNTIME\DAV-X86-150.EXE and
...\RUNTIME\DAV-AXP-150.EXE
This demonstration package includes the Array Viewer,
Avis2D ActiveX control, and a sample file. The Array
Viewer Demo can display AGL (Array Visualizer's native
format) files written by an Array Visualizer user; it
can also display HDF files. The package, including the
ActiveX controls, is also used when distributing
applications which make use of the Avis2D control to
users who do not have the full Array Visualizer kit
installed.
1.4.2 Version 6.1 News
The following Version 6.1 news should also be noted:
o New in v6.1A are the command line options /ccdefault,
/cxml, /imsl, and /align:sequence; array constructors
may have scalar CHARACTER source elements of varying
size. See the online documentation for more information.
o VF v6.1 Professional CD contains v6.0 IMSL libraries
The VF v6.1 Professional kit contains the IMSL libraries
from the VF v6.0 Professional kit. The VF v6.1 Getting
Started and Programmers Guide document new v6.1 IMSL
libraries that will be made available via a web-
downloadable patch kit soon after VF v6.1 ships.
o NO_ARG_CHECK attribute
The NO_ARG_CHECK attribute specifies that type and shape
matching rules related to explicit interfaces are to be
ignored. This permits the construction of an INTERFACE
block for an external procedure or a module procedure
that accepts an argument of any type or shape. See the
online documentation for more information.
Compaq recommends that arguments declared as type
CHARACTER not be given the NO_ARG_CHECK attribute, as
argument passing inconsistencies may otherwise result.
o Predefined symbols to VF and FPP
The VF driver executes FPP and the VF compiler with a
number of predefined symbols:
________________________________________________________
Switch/Symbol_____________Why?__________________________
-D_WIN32=1 (both Because this is Win32
compiler and FPP)
-D_MT=1 If compiling threaded
-D_X86_=1 (both compiler If Intel
and FPP)
1-12 Compaq Visual Fortran Version 6.5 Release Notes

________________________________________________________
Switch/Symbol_____________Why?__________________________
-D_WIN95=1 If Windows 95
-D_WIN98=1 If Windows 98
-D_ALPHA_=1 (both If Alpha
compiler and FPP)
-D_MSFORTRAN_=401 If /fpscomp:all or
/fpscomp:symbols
-D_DLL=1 If linking against a DLL
/D__LANGUAGE_FORTRAN______To_FPP_only___________________
The user may define additional symbols, such as -D_
BUILDING_DLL=1 to mean that the compilation is building
a DLL.
o A new item has been added to the Developer Studio File
menu, "Print Colorized Fortran...". This item prints a
Fortran source file in color. It uses the FSC utility,
described elsewhere in the release notes, to create
an HTML file with the coloring information. It then
instructs the application on your system that handles
HTML files to print the file. This has been tested
with the Internet Explorer and Netscape browsers. If
you encounter a problem using the "Print Colorized
Fortran..." item, please use the FSC utility directly.
Note that "Print Colorized Fortran..." creates the
HTML file in your TEMP directory, and does not delete
the file since it does not know when the printing has
completed. You may delete these files to free up disk
space.
o FSC.EXE has been added to the kit. This program takes
an .F90 or .FOR source and produces a HTML version that
is colorized per the current Developer Studio Color
settings in the registry. It has default colors that are
used if the current registry settings are not available.
The resultant HTML file may be printed or viewed with
your favorite browser. This utility may be invoked from
a command prompt (use FSC -? or FSC /h for help) or from
within the IDE.
Compaq Visual Fortran Version 6.5 Release Notes 1-13

o VFRUN provides a self-extracting executable file that
installs Visual Fortran run-time components on the
target system. These run-time components include DLLs
and other files, as described in Compaq Visual Fortran
Installing and Getting Started in "Redistributing Visual
Fortran Files".
VFRUN files are provided for different Visual Fortran
releases and for x86 and Alpha systems. For example, for
Visual Fortran v6.1, VFRUN61i.exe is provided for x86
systems and VFRUN61a.exe is provided for Alpha systems.
o The Fortran compiler now sets "/arch:host /tune:host"
when the user specifies "/fast". This generates optimal
code for the computer architecture on which the compiler
is running. However that code may run slowly or not at
all on another version of the computer architecture.
o Two new Fortran source directives for controlling
optimizations are now available: cDEC$ IVDEP and
cDEC$ UNROLL. See the online Compaq Visual Fortran
Programmer's Guide for a complete description.
o New functionality has been added to the Dialog
Procedures:
- You may use ActiveX Controls in your dialog
boxes. See "Using ActiveX Controls" in the "Using
Dialogs" section of the online Compaq Visual Fortran
Programmer's Guide.
- Edit Box control enhancements:
* You may now use multiline edit controls.
* The maximum size restriction of 256 characters has
been removed.
* The Edit Box control supports two additional
integer indexes:
DLG_TEXTLENGTH - Sets or Gets the current
length of the text in the edit box.
DLG_POSITION - Sets or Gets the current text
cursor position in the edit box.
- New Routines:
* DlgSetTitle - Sets the title of the dialog box.
1-14 Compaq Visual Fortran Version 6.5 Release Notes

* DlgFlush - Updates the display of the dialog box.
Useful when changing the dialog box outside of a
dialog callback.
* DlgModalWithParent - Allows you to specify the
parent window of a modal dialog box. Useful in
an SDI or MDI Windows application that uses modal
dialog boxes.
* DlgIsDlgMessageWithDlg - Allows you to specify
which dialog box to check. Useful when the dialog
box was created in a DLL.
- The dialog box supports a new callback index, DLG_
SIZECHANGE. This callback is invoked when the size of
the dialog box changes.
There is one known problem: An event method which passes
a DOUBLE parameter by value does not work. This is
because of a problem in a system DLL.
o New SPORT_xxx (Serial Port) routines have been added
The SPORT_xxx collection of routines is designed to
help the Fortran programmer do basic input and output
to serial ports. The programming model is much the same
as a normal file except the user does a connect/release
instead of an open/close. Two types of read and write
operations are provided. One set reads and writes
arbitrary data from/to the port while the other set
reads and writes line terminated data. Calls are
provided to set basic port parameters such as baud
rate, stop bits, timeouts, etc. Additionally, a call
is provided to return the WIN32 handle to the port so
that raw WIN32 APIs may be used to implement additional
needs of the programmer.
The documentation overview can be found in Programmers
Guide-> Files, Devices, and I/O Hardware->I/O Hardware-
>Using the Serial I/O Port Routines. The detail
description of the routines can be found in Language
Reference->A to Z Reference->S.
o The new subroutine TRACEBACKQQ() allows you to initiate
a stack trace in your program whenever you like. The
input arguments allow you to specify your own message
text to head the output and other options as well. See
the online documentation for more info. (Programmer's
Compaq Visual Fortran Version 6.5 Release Notes 1-15

Guide->Handling Run-Time Errors->Using Traceback
information, and the Language Reference Manual A to Z
Reference->T to Z->TRACEBACKQQ.)
o Greater Access to Windows APIs
DFWINTY.F90 has 980 new derived types and 4070 new
Fortran parameter constants added. These new items
represent the difference between Microsoft Visual C++
4 header files and Visual C++ 6 header files.
USER32.F90 has 72 new interfaces to routines in
USER32.LIB. These new routine interfaces again represent
the difference between Microsoft Visual C++ 4 header
files and Microsoft Visual C++ 6 header files.
KERNEL32.f90 has 50 new interfaces to routines in
KERNEL32.LIB.
GDI32.F90 has 25 new interfaces to routines in
GDI32.LIB.
ADVAPI32.F90 has 50 new interfaces to routines in
ADVAPI32.LIB.
In all these files, the new material is under
conditional compilation so that defining "__DO_NOT_
INCLUDE_VC6_ITEMS" will remove the new items. Search for
the string above to locate the new items which will be
found towards the end of the file.
The files are shipped without the string being defined,
and the module files will contain the new items.
o VF puts literals into read-only memory so storing into
a dummy argument that has a constant as its associated
actual argument will result in an access violation and
program termination:
call f(0)
...
subroutine f(i)
i=1 ! this will die
o v6.1 for Intel contains all of the applicable updated
files from the Microsoft Visual Studio 6.0 Service Pack
3. Therefore, V6.1 Intel users do not need to install
Visual Studio 6.0 Service Pack 3 unless you have other
Visual Studio products. v6.1 for Alpha contains all of
1-16 Compaq Visual Fortran Version 6.5 Release Notes

the applicable updated files from the Microsoft Visual
Studio 6.0 Service Pack 2.
1.4.3 Version 6.0 News
The following v6.0 news should be noted:
o With the addition of minimal width format field editing
in this release, VF now fully supports the Fortran 95
standard ISO IEC 1539-1:1997.
o Effective with this release, the v4.0 Microsoft Fortran
90 compiler for Intel is no longer supplied on the
Visual Fortran kit.
o Support for traceback is included with this VF kit.
When an application aborts with a severe error, the
Fortran runtime will now, by default, display its usual
error message plus a hex dump of the call stack at the
time of the error. If the executable image includes
traceback information, the runtime will also provide
correlation of program counter values to the source
file, routine name and line number. The inclusion of
traceback info is under the control of a new compiler
option, /traceback. The /traceback option is on by
default in IDE Debug configurations and off by default
in IDE Release configurations.
If you do not want to see traceback output, you can
disable it with a new environment variable, FOR_DISABLE_
STACK_TRACE. Set the environment variable to true to
turn off the output. You will still get the standard
runtime error message telling you what happened if you
disable stack trace output.
Since the expected correlation information can only
be generated by the Fortran compiler, mixed language
applications will only see correlation for that part
of the application written in Fortran. You'll still get
hex PCs for anything else but you can manually correlate
that information by use of a map file.
The online Compaq Visual Fortran Programmer's Guide
contains more information on generating and using
traceback information to debug your application.
Compaq Visual Fortran Version 6.5 Release Notes 1-17

Correlation of program counter values to the source
lines does not work with incremental linking. If you
enable traceback and incrementally link your image, the
rtl will disable PC correlation.
o The call stack display in the IDE and traceback
information displayed for errors from math intrinsics on
Intel platforms used to be incorrect due to limitations
of the WIN32 StackWalk() api. For debug images or
images built with the /traceback option, the compiler
will now use a calling sequence which the StackWalk()
api is capable of interpreting correctly.
o Visual Fortran now provides Fortran project wizards
which make it easier for you to create a new Fortran
project. In some cases, "template" code can be generated
as a starting point for your application. See the "Types
of Projects" section in the online Compaq Visual Fortran
Programmer's Guide for details.
o Visual Fortran now provides a facility to save and
re-use the Project settings for multiple projects of
the same project type. For example, you can save your
Project settings environment for a QuickWin project type
and use those saved settings as defaults when you create
a new QuickWin project type. See the "Saving and Using
the Project Setting Environment for Different Projects"
section in the online Compaq Visual Fortran Programmer's
Guide for details.
o There is a new icon in the Fortran toolbar. It is named
"Manage Saved Fortran Environment" and it displays your
saved Fortran environments. It allows for selective
deletion of saved environments and duplicate scanning.
It also allows you to rename the environment or change
the comment.
o The rtl has a new feature for helping to debug unhandled
IO programming errors in the IDE. When a severe
unhandled IO programming error occurs (such as an End-
of-File condition), and the program is executing in the
debugger, the rtl will raise a debug event automatically
so execution will stop and the Call Stack Display
(Alt+7) can be viewed.
1-18 Compaq Visual Fortran Version 6.5 Release Notes

When the debug event happens, the user will see an
information box containing:
User breakpoint called from code at 0xnnnnnnn
along with disassembly information from NTDLL. Click
on OK to dismiss the information box. Scanning down
the Call Stack Display, there will be a few frames from
NTDLL and the Fortran rtl displayed, and then the actual
Fortran routine with the IO call will show up. In the
Context menu, select the Fortran routine to get the
Fortran code displayed with the green arrow pointing at
the IO statement in error.
This action all occurs after the error message and
traceback information has been gathered and output. That
information is available in the hidden program output
window if you iconize the IDE. You should not need the
stack dump because you have the Call Stack Display in
the IDE, but the error message with the file name might
be useful to see.
In VF v5.0, this behavior is only supported on Windows
NT: to break on an unhandled IO error on Windows9*, the
user had to use the environment variable FOR_GENERATE_
DEBUG_EXCEPTION. In VF v6.*, it is no longer necessary
to use FOR_GENERATE_DEBUG_EXCEPTION.
o The /optimize:5 and /[no]transform_loops options are now
supported on the Intel platform. They have always been
there on the Alpha platform.
o The ...\DF\SAMPLES directory now contains a SAMPLES.HTM
file that is a "roadmap" to the samples. It explains the
functionality that each sample demonstrates.
o The behavior of the REFERENCE attribute has changed, but
only in a very specific, limited way.
The change occurred in how character strings are passed
when the STDCALL and REFERENCE attributes are both given
to an entire function or subroutine.
Character strings can be passed with or without a
"hidden length". In general, they are passed with a
hidden length included either immediately after the
character argument, or at the end of the argument list.
However, when certain attributes are applied to the
Compaq Visual Fortran Version 6.5 Release Notes 1-19

argument or function, only the address of the character
argument is passed with no hidden length argument. This
was previously defined as:
_________________________________________________________________
Argument
Given to
ATTRIBUTE ATTRIBUTES Given to Function or Subroutine
C+REFER- STDCALL+REFER-
___________default__C________STDCALL___ENCE________ENCE__________
default w/len arg(1:1) arg(1:1) w/len no len
reference__no_len___no_len___no_len____no_len______no_len________
This was how Microsoft PowerStation originally specified
this behavior, so VF specified it too. However, there
was no ability to pass a character argument with the
hidden length *and* using the STDCALL attribute for the
function. This was a major problem that did not occur
with the C attribute because specifying C+REFERENCE did
pass the length. Also, this was the only case where the
C+REFERENCE behavior varied from the STDCALL+REFERENCE
behavior.
As a result, the STDCALL+REFERENCE behavior has been
modified (when no attribute is given to the argument)
to match the C+REFERENCE behavior, i.e. pass both the
address and the hidden length in this case. This allows
the use of STDCALL while still being able to pass the
address of character arguments with or without the
hidden length.
To pass the address only, i.e., to get the old behavior,
add the REFERENCE attribute to character arguments while
keeping both the REFERENCE and STDCALL attributes on the
routines.
o The run-time support was modified to not require a
record terminator <CR> or <LF> on the last record of
a formatted data file. Prior to this change, an end of
file during read was generated when this condition was
encountered. Also, prior to this change, the switch
/fpscomp=general would allow the last record to not
contain a record terminator.
1-20 Compaq Visual Fortran Version 6.5 Release Notes

o The BUFFERED= keyword has been added to the OPEN and
INQUIRE statements. The default is BUFFERED='NO' for all
I/O, in which case, the RTL empties its internal buffer
for each WRITE. If BUFFERED='YES' is specified and the
device is a disk, the internal buffer will be filled,
possibly by many WRITEs, before it is emptied.
If the OPEN has BUFFERCOUNT and BLOCKSIZE arguments,
their product is the size in bytes of the internal
buffer. If these are not specified, the default size
is 1024 bytes for /fpscomp=general and 8192 bytes
otherwise. This internal buffer will grow to hold the
largest single record but will never shrink.
o The command line option "/assume=buffered_io" turns on
buffered I/O for all Fortran logical units opened for
sequential writing. The default is "/assume=nobuffered_
io".
o New functionality has been added to the Dialog
Procedures:
- Support for modeless dialog boxes (DlgModeless)
- Support for Picture, Progress, Spin, Slider and Tab
controls
- Support for the DLG_ADDSTRING control index for List
and Combo Boxes
- Support for initial data for Combo Boxes
See the "Using Dialogs" section of the online Compaq
Visual Fortran Programmer's Guide for details. There is
a new DIALOG samples directory which demonstrates the
use of the new functionality.
If you used any of the non-public procedures or
structures in DFLOGM.F90, you must recompile your code
before relinking.
o New functionality has been added to the Fortran Module
Wizard:
- The wizard now processes the Enumerations in the type
information. It generates PARAMETER declarations for
the Enumerations that you select.
- The wizard now generates PARAMETER declarations for
the CLSIDs of the CoClass'es in the type information.
Compaq Visual Fortran Version 6.5 Release Notes 1-21

- The list box in the "Type Library" dialog box now
preceeds the name of the component with the type
of component (for example, "Interface", "Enum",
"Dispinterface", "Module").
1.4.4 Version 6 Notes
o The directories \x86\USUPPORT and \AXP\USUPPORT on the
CD-ROM contain some unsupported but nevertheless useful
tools. For example:
_________________________________________________________________
...\Support
Directory___________Description__________________________________
\Misc\CTEST.EXE This program may be renamed to "WHICH.EXE"
and placed somewhere on a users PATH to
perform the function of the Unix "which"
command.
\Misc\WHAT.EXE This program will scan a binary file for Unix
style "what" strings and display any that
are found. The DECFOR90.EXE may be used as an
example of a file that contains these "what
strings".
\Misc\STRSUB.EXE This program will process a text file and
replace all occurences of a given string with
another string.
\Misc\FIXMSTAB.EXE This program converts Fortran source code
that uses Microsoft style tab rules to follow
Compaq Fortran standard TAB rules.
\Misc\CBANLC.EXE This program analyzes object and library
files for inconsistencies in Fortran COMMON
blocks that can lead to LINK errors and
program failures. For instance, this tool
will tell you if you have declared two COMMON
blocks of the same name that have different
sizes. Note that because of performance
considerations, a COMMON block whose size is
less than 8 bytes is reported to have a size
of 8 bytes. This may cause inconsistencies in
small COMMON blocks to not be reported.
1-22 Compaq Visual Fortran Version 6.5 Release Notes

_________________________________________________________________
...\Support
Directory___________Description__________________________________
\Misc\CBANLW.EXE A Windows version of the above CBANLC tool.
\Misc\LOADTEST.EXE This program can be used to try a test load
on a DLL that might be loaded later by some
program using the LoadLibrary API (such as
used by Microsoft Visual Basic). It will try
to load the DLL and report all other DLLs
that are used in the process. Optionally it
will lookup entry points in the loaded DLL
using names passed in on the command line.
All errors are reported.
\Win95\EC.EXE This program may be used on a Windows 95
system to capture stderr output. It executes
a command line after parsing and removing
____________________Windows_NT_compatible_redirection_symbols.___
o Conditional compilation with various letters in
column 1 of fixed form source is a Microsoft Fortran
PowerStation feature that is not supported by VF.
VF provides a sample program called DLINES (under
Samples\Advanced\COM) which will automatically convert
PowerStation conditional compilation letter lines to
the !DEC$ IF DEFINED form. This program is also an
interesting example of using the COM interface to
drive Developer Studio, which is used to actually do
the editing.
o To allow you to read the Compaq Visual Fortran
Installing and Getting Started guide before (or during)
installation, the Getting Started document is provided
in Adobe Acrobat Reader (PDF) format in the root
directory of the Visual Fortran CD-ROM with a file name
of CVF_GS.PDF. This file requires Acrobat Reader Version
3.01 (Version 3.02 or later recommended), which can be
downloaded from: http://www.adobe.com
After you install Visual Fortran, you can view the
Visual Fortran Language Reference, Programmers Guide,
Error Messages, Array Visualizer, and other online
documentation with HTML Help Viewer.
Compaq Visual Fortran Version 6.5 Release Notes 1-23

o The fpp preprocessor by default does not do macro
substitution. There is an option to enable it:
c:\users\test> df /fpp:"/m" tst.fpp
The default is /fpp:"/nom".
o Regarding how many files can be simultaneously open in a
VF program, the following experiments were performed:
- On Windows NT, a Visual Fortran program was able to
open successfully 5000 files simultaneously.
- On Windows 9*, a Visual Fortran program was able to
open successfully 250 files simultaneously before it
got an OPEN error.
o Using NT v4.0 SP3 {service pack 3}, a VF program can
compile and execute with a COMMON block up to 1.75GB in
size.
o VF allocates array temporaries and automatic arrays on
the stack at run-time. The default size of the Win32
stack is not very large so you may need to increase the
stack size.
It is possible to increase the stack size either when
you link the executable, or by using EDITBIN on the
executable later.
On the LINK command line, you can use the /stack
qualifier, as:
link /stack:4000000
Or, as part of the DF or F90 command:
df foo.f /link /stack:4000000
You also have the option to modify the stack size in the
executable itself using EDITBIN, such as:
editbin /stack:4000000 foo.exe
By default, the stack size is 0x100000, or (1,048,576
decimal).
o The FULLAPI.F90 file. If the /winapp switch does not
eliminate undefined globals from compiling a native
windows application, try adding this file to your
project or command line. FULLAPI.F90 contains library
search directives for almost all needed libraries.
1-24 Compaq Visual Fortran Version 6.5 Release Notes

o It is now possible to PRINT and SAVE your QuickWin
screen images when your display settings are set to
Hi Color (16 bits per pixel), True Color (24 bits per
pixel), and True Color (32 bits per pixel). Only support
for 256 colors (8 bits per pixel) or less was previously
provided. This extended support also applies to the
routines GETIMAGE, IMAGESIZE, LOADIMAGE, PUTIMAGE, and
SAVEIMAGE, and to the _W versions of these routines such
as SAVEIMAGE_W.
To SAVE or PRINT a screen image, click on the window
you want to use, click on the menu item EDIT, and Select
All, then click on the menu item FILE, and click either
PRINT or SAVE. You may display the resulting .BMP from
SAVE in the PAINT accessory or you may use a call to
the LOADIMAGE routine in a QuickWin program to bring the
image back to the screen.
o In the linker, the order that libraries are searched
is the order in which the libraries are specified
EXCEPT that the linker looks in the "current" library
first. So, if your program references something in
B.LIB and then it references F which is in both A and
B, the linker will find the F in B.LIB even if A.LIB
is specified on the link line first. If you specify
/VERBOSE on the link command line, the linker will show
you what it is doing.
o On Windows 95 and Windows 98 systems, fpe:0 doesn't
work correctly on underflow. The hardware signals the
underflow but the operating system reports a floating
invalid. Instead of making the result value 0.0, the
program aborts.
1.4.5 Version 6.5 Known Problems
The following known problems remain in VF:
o Control C handlers
Problems have been reported with implementing console
event handlers (e.g., control C handlers) in programs
built with Visual Fortran. The symptom is usually that
the handler is seemingly never invoked. This is due to
the implementation of console event handling on WIN32
platforms. In response to a cntl-C event, the operating
system will create a new thread to execute the handler
Compaq Visual Fortran Version 6.5 Release Notes 1-25

in. In order for the new thread to execute, it must
obtain priority. If the currently executing thread
does not relinquish its priority, it is possible that
program execution will terminate before the console
event handler ever executes. For example, a READ
statement directed at the console which is interrupted
by a control-C can cause an end-of-file error to be
processed, resulting in program termination, before an
event handler can execute. This is a WIN32 restriction,
not a bug in VF, and developers need to be defensive
when implementing console event handlers. For example,
the READ statement above could supply an END=label where
at label, a call to Sleep(0) causes the current thread
to give up its priority and might allow a handler to
execute.
o asm files generated by the compiler may not assemble
properly. This will be corrected in a future release.
o There is a known interaction problem with window sizing
when using the program TOPDESK (from the Microsoft
resource kit) and Developer Studio. The problem can be
somewhat avoided by not maximizing the Developer Studio
Window.
o Programs that use the ARRAY_VISUALIZER attribute must be
linked and run on systems that have the array visualizer
installed. If the array visualizer is not installed and
a link of a program using the ARRAY_VISUALIZER attribute
is attempted, an unresolved reference will be reported.
If a program using the ARRAY_VISUALIZER attribute is
run on a system on which the array visualizer is not
installed, the program will crash at run time.
1.5 Visual Fortran Documentation Release Notes for Version 6
This section describes documentation changes for Version
6.5 Documentation Changes. It also describes:
o Version 6.1 Documentation Changes
o Initial Index Use and Use With MSDN
o PDF Files, LRM HTML Files, and Samples
1-26 Compaq Visual Fortran Version 6.5 Release Notes

1.5.1 Version 6.5 Documentation Changes
The following summarizes online documentation changes for
Compaq Visual Fortran Version 6.5:
o New sections and chapters have been added to the online
Compaq Visual Fortran Programmer's Guide. The new
chapters are:
- Creating a COM Server
- Advanced Exception and Termination Handling
Considerations
o New intrinsic procedures and other language elements
have been added to the Language Reference.
o New features as well as links to the new sections in the
online documentation are provided in New Features for
Compaq Visual Fortran Version 6.5, which is available
from the HTML Help online documentation Home Page.
o Access to the latest MSDN information are now available
as items in the HTML Help viewer's Help menu. For
example, click the Help menu item MSDN Library Help
to view the latest MSDN information from Microsoft.
o Starting with Version 6.5, the Visual Fortran Getting
Started is now called the Compaq Visual Fortran Installing
and Getting Started.
1.5.2 Version 6.1 Documentation Changes
The following summarizes using HTML Help changes for
Version 6.1 and 6.1A:
o You can now define subsets within HTML Help.
For example, you can define a subset of just Visual
Fortran documentation. This can be used to minimize
index or full-text search tasks. To define a subset,
use the Define Subset item in the View menu (see the
Installing and Getting Started online PDF file or
printed guide). To choose a subset, click the drop-down
list in the left pane.
Compaq Visual Fortran Version 6.5 Release Notes 1-27

o HTML Help now remembers its window size and screen
location from its previous use. HTML Help stores its
window geometry, so its window size and location are
remembered the next time you start HTML Help.
o The home pages now have a link to a section that lists
new features.
The Visual Fortran and Array Visualizer home pages now
have a link to a section that describes new and changed
features. The sections contain links to the sections
where the new features are discussed in detail.
o HTML Help Viewer is the online documentation viewer
HTML Help Viewer does not appear automatically when you
start Developer Studio. For more information about the
HTML Help viewer, see Chapter 5 of Compaq Visual Fortran
Installing and Getting Started.
o In HTML Help Viewer, under the title Visual Fortran, are
these titles:
- Compaq Visual Fortran: contains the Visual Fortran
Home Page, Language Reference, Programmer's Guide,
and Error Messages.
The Language Reference describes language topics and
includes a section "A to Z Reference", containing
an alphabetic list of all Visual Fortran intrinsics
and routines. The Compaq Visual Fortran Programmer's
Guide contains information about building Fortran
applications, compiler options, debugging, coding
for various project types, and other information.
Error Messages includes not only Fortran run-time
messages, but also Linker messages, NMAKE messages,
and messages for related tools.
- Compaq Array Visualizer: contains the Array
Visualizer Home Page and documentation (the full
Array Visualizer is provided in the Professional
Edition). An .HLP file for the Array Viewer part of
the Array Visualizer is also provided.
- The title Developer Studio 98 contains the Visual C++
User's Guide (for Visual Fortran).
1-28 Compaq Visual Fortran Version 6.5 Release Notes

1.5.3 Initial Index Use and Use With MSDN
o Initial index use and disk space requirements for HTML
Help Viewer
After you install Visual Fortran, you can run the HTML
Help Viewer to view the online documentation. If you
install Visual Fortran using the "Run From CD-ROM"
option, the first time you access the index (such as
clicking the index tab, pressing F1, or if you start
HTML Help Viewer by clicking Index in the Help menu),
a "building index for first use" message box appears.
There will be a delay of 10-20 minutes while HTML Help
Viewer creates a df60.chw index file in the folder
...\Microsoft Visual Studio\df98\doc. The df60.chw file
is approximately 20 MB.
In addition to disk space requirements for installing
Visual Fortran in "Run From CD-ROM" mode, the disk where
Visual Fortran is installed must have enough room after
installation for building the df60.chw file, if you
intend to use the documentation index.
There also needs to be at least 30MB free on the disk
where the windows temp directory resides while the
df60.chw file is being built.
o If you also install the MSDN (or Visual Studio)
documentation
If you also install the MSDN documentation from CD-ROM,
be aware that you must switch between displaying the
MSDN documentation collection and the Visual Fortran
documentation collection in HTML Help Viewer. With
Windows 2000 systems, be aware that your account needs
at least Power User priviliege to change collections. To
change the collection of titles displayed in HTML Help:
1. Start the visual development environment (Start->
Compaq Visual Fortran->Developer Studio)
2. In the Tools menu, click Options.
3. Scroll to the Help System tab
4. In the Preferred Collection box, select either the
Visual Fortran or the MSDN Library as your current
collection.
Compaq Visual Fortran Version 6.5 Release Notes 1-29

5. Click OK. The collection you just selected is now
your current collection.
Regardless of the collection currently selected, you
can display the Visual Fortran HTML Help by selecting
"Online documentation" in the Visual Fortran program
folder.
1.5.4 PDF Files, LRM HTML Files, and Samples
o Visual Fortran, CXML, and IMSL documentation are
provided as PDF files.
The Compaq Visual Fortran Installing and Getting Started
is available in Acrobat PDF format. Open the file cvf_
gs.pdf on the Visual Fortran CD-ROM root directory in
Adobe Acrobat Reader.
Most of the Visual Fortran HTML Help documentation is
also available in as PDF files in the Info\Df\Doc\CVF_
PDF directory on the Visual Fortran CD-ROM (see the
Readme.htm or Readme.txt file in that directory).
The online Compaq Extended Mathematical Library (CXML)
Acrobat PDF file Cxmlref.pdf are located in the
directory x86\df\cxml\doc or Axp\df\cxml\doc on the
Visual Fortran CD-ROM. If requested, the Cxmlref.pdf
file is installed in the ...\Df98\CXML\Doc directory.
The online IMSL Acrobat PDF files are provided in the
folder x86\df\imsl\help or Axp\df\imsl\help on the
Visual Fortran CD-ROM. Open the file imsl.pdf to access
all the IMSL PDF files. If requested, the IMSL PDF files
are installed in the ...\Df98\IMSL\Help directory.
You can download the Visual Fortran online documentation
in Acrobat PDF format or view the HTML version of the
Compaq Fortran Language Reference Manual and Compaq
Visual Fortran Installing and Getting Started by
clicking the Online Documentation area at our Web page:
http://www.compaq.com/fortran
Viewing these PDF files requires Adobe Acrobat Reader
Version 3.01 (or later). The Acrobat Reader can be
downloaded from the Adobe Web site: http://www.adobe.com
1-30 Compaq Visual Fortran Version 6.5 Release Notes

If you do not have Internet access, you can install
Acrobat Reader by double-clicking the exe file in the
following directory on the Visual Fortran CD-ROM for x86
systems:
x86\Tools\AcroRead
Before you install a new version of Acrobat Reader,
remove the previous version of Acrobat Reader by using
the Add/Remove Programs icon in the Control Panel.
o An HTML version of the Compaq Fortran Language Reference
Manual is provided on the Visual Fortran CD-ROM in
the folder Info\Df\Doc\Lrm (open file Dflrm.htm in
a browser). This document and the online Language
Reference now show Compaq extensions (blue-green color)
to the Fortran 95 standard.
o Road Map to the Samples and Samples Folders
Visual Fortran samples are provided in directories
below:
On the VF CD-ROM: info\Df\Samples
On your disk after ...\Microsoft Visual
installation: Studio\Df98\Samples
The Road Map to the Samples, file Samples.htm, can
be viewed in an HTML browser. It describes the Visual
Fortran Samples and is available:
On the VF CD-ROM: info\Df\Samples\Samples.htm
On your disk after ...\Microsoft Visual
installation: Studio\Df98\Samples\Samples.htm
Array Visualizer samples are provided in directories
below:
On the VF CD-ROM: x86\Samples
Axp\Samples
On your disk after Program
installation: Files\ArrayVisualizer\Samples
There is a separate Roadmap to the Array Visualizer
Samples, samples.htm, provided in:
Compaq Visual Fortran Version 6.5 Release Notes 1-31

On the Array x86\Samples\Samples.htm
Visualizer CD-ROM: Axp\Samples\Samples.htm
On your disk after Program Files\ArrayVisualizer\Samples\Samples.h
tm
installation:
1.6 Visual Fortran Compiler Release Notes
The following changes have been made to VF v6.1A since VF
v6.1 shipped:
o The following changes have been made to the compiler
{from -845-4297N to -970-42A1L}:
- Add /ALIGN:SEQUENCE which specifies that SEQUENCE
types may be padded for alignment.
- Make the default for BLANK= in OPEN match the
documentation when the -f66 (/NOF77) switch is
specified, which is to default to BLANK='ZERO'.
Previously, BLANK='NULL' was used regardless.
- Allow array constructors to have scalar CHARACTER
source elements of varying size.
- Correct problem where a call to a routine with the C
and VARYING attributes generates incorrect code.
- Allocate all PARAMETER constants in a read-only
PSECT.
- Ensure that locally-allocated derived-type arrays are
naturally aligned.
- Generate correct code for pointer assignment of an
array generated from a section of a derived type.
- Eliminate internal compiler error in certain cases
with dummy argument that has OPTIONAL and INTENT(OUT)
attributes.
- Eliminate access violation on some platforms for
ALLOCATE of pointer in derived type.
- Correct problem where compiler could omit putting out
declaration for a routine symbol.
- Handle non-present, optional dummy arguments as third
argument to INDEX, SPAN and VERIFY.
1-32 Compaq Visual Fortran Version 6.5 Release Notes

- Generate correct code when passing character array
slices as arguments.
- Fix case of contiguous array slice as first argument
to TRANSFER.
- Fix INQUIRE by IOLIST of ALLOCATABLE arrays
- Correct problem involving pointer assignment with
sections of a derived type.
- If an ALLOCATABLE array has the ARRAY_VISUALIZER
attribute, make sure that automatic deallocation at
end of routine is done correctly.
- 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 option.
- 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.
- Fix problem which could cause incorrect code to
be generated for certain uses of PACK, RESHAPE and
UNPACK, primarily with CHARACTER arguments.
- Speed up compilation of initialized nested
structures.
- Fix problem with incorrect code generated for use of
nested SPREAD intrinsic.
- 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.
Compaq Visual Fortran Version 6.5 Release Notes 1-33

- Do not disable type checking for %LOC.
- Properly parse generic INTERFACE whose name begins
with TO.
- When /align dcommons is used, make sure that POINTER
objects in COMMON are aligned on quadword boundaries.
- Correctly parse program with IF construct whose name
begins with IF.
- Flag square-bracket array constructor syntax as an
extension.
- Eliminate internal compiler error for certain uses of
TRANSFER.
- Properly detect ambiguous generic reference when all
distinguishing arguments are OPTIONAL.
- Eliminate internal compiler error for a case
involving a PRIVATE POINTER in a module.
- Eliminate spurious "this name has already been
used as an external procedure" error for recursive
function which returns a derived type.
- "Directive not supported on this platform" diagnostic
is now informational, not warning.
- Allow array sections in DATA statement variable list.
- Eliminate inappropriate error messages when
overloading SIGN intrinsic.
- Eliminate internal compiler error when "-" defined as
both unary and binary operators in separate modules.
- Eliminate spurious unused warning for pointer target.
- Eliminate spurious standards diagnostic for !DEC$
UNROLL.
- Correct problem with accessibility of NAMELIST names
from module.
- Correct evaluation of FLOAT intrinsic with -real_size
64.
- Correct problem with array constructors in format
expressions.
1-34 Compaq Visual Fortran Version 6.5 Release Notes

- 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).
- Allow module ALLOCATABLE variables to be DLLIMPORTed.
- 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 DLLEXPORT of
ALLOCATABLE array.
- 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 internal compiler error for format
in a PRINT statement being an expression with
concatenation.
Compaq Visual Fortran Version 6.5 Release Notes 1-35

- Eliminate GEM assertion for program unit that
declares a COMMON block, DLLIMPORTs it, but never
uses it.
The following changes have been made to VF T6.2.T Beta 1
since VF v6.1A shipped:
o The following changes have been made to the compiler
{from -970-42A1L to -1011-44A33}:
- Correct problem with NULL initialization of
POINTER/ALLOCATABLE variables.
- 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.
- 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.
- Don't do "flawed Pentium check" when /arch specifies
Pentium Pro or "higher".
1-36 Compaq Visual Fortran Version 6.5 Release Notes

- 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.
- %VAL/%REF now overrides any mechanism specified in an
explicit interface.
- 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 a LOGICAL argument to an
intrinsic which expects INTEGER.
- Correctly parse format which contains ">" characters
and a variable format expression.
The following changes have been made to VF T6.2.U Beta 2
since VF T6.2.T Beta 1 shipped:
o The following changes have been made to the compiler
{from -1011-44A33 to -1055-44A4S}:
- Generate much better code for certain array
constructors (such as (/0,I=1,500000/) and allow
Compaq Visual Fortran Version 6.5 Release Notes 1-37

lowerbound, upperbound, and stride to have different
KINDs.
- 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.
- Eliminate internal compiler error for a particularly
complex and deeply nested structure reference in an
IF.
- Don't give error for passing a 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).
- Eliminate spurious unused variable diagnostic for
variable used in pointer assignment.
- Correct problem where asking for standards checking
disabled /define (-D)
- 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.
1-38 Compaq Visual Fortran Version 6.5 Release Notes

- 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.
- Fix a case where two NaNs sometimes compared as
equal.
- Eliminate GEM assertion for program unit that
declares a COMMON block, DLLIMPORTs it, but never
uses it.
The following changes have been made to VF T6.2.U Beta 2
plus since VF T6.2.U Beta 2 shipped:
o The following changes have been made to the compiler
{from -1055-44A4S to -1088-44A5I}:
- Allow user-defined types to be named BYTE and
DOUBLECOMPLEX.
- Improve generated code for mixed COMPLEX-REAL
multiplication and division.
- Disallow the unsupported declaration COMPLEX*32 or
COMPLEX(16).
Compaq Visual Fortran Version 6.5 Release Notes 1-39

- Make sure that underflows go to zero with -fpe0 and
-fpe1 in certain situations where they didn't before.
- In array constructors with only one implied-DO, and
nothing else, avoid creating an unnecessary temp.
- Allow SIZEOF(allocatable-array)
- 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.
- 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.
The following changes have been made to VF v6.5 since VF
T6.2.U Beta 2 plus shipped:
o The following changes have been made to the compiler
{from T6.2-1088-44A5I to V6.5-1096-44A6D}:
- Improve generated code for SIZEOF(array)
- 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.
1-40 Compaq Visual Fortran Version 6.5 Release Notes

- Allow PARAMETER constant in ALIGN= specification of
!DEC$ PSECT.
- If DLLIMPORT is specified for an identifier not
otherwise used or declared, treat it as if it named a
routine and not a variable.
- Do not give shape mismatch for correct-shape RESHAPE
in initialization expression.
- Do not give inappropriate alignment warnings for
certain convoluted EQUIVALENCE/COMMON combinations.
- Change the version number to 6.5; there are no
releases numbered 6.2, 6.3, or 6.4.
The following features from Microsoft Fortran PowerStation
are not supported by Visual Fortran:
o Tab continuation lines that start with other than the
digits 1 through 9 {see the FIXMSTAB utility above for a
work-around}
o $DEBUG, $NODEBUG-additional runtime checking
o DATA statement style initialization in attribute style
declaration statements
o Debug lines (other than D) {see the DLINES sample above
for a work-around}
o $OPTIMIZE-change optimization options
o Integer array can contain FORMAT
o Internal files can be any type
o Listing metacommands - $page, $pagesize, $linesize,
$[no]list, $include, $line
1.7 Visual Fortran RTL Release Notes
The following changes have been made to the Visual Fortran
Run-Time Library (RTL) system v6.1A since VF v6.1 shipped:
o The following changes have been made to the RTL {-731}:
- The RTL was fixed to properly support a run-
time format that contained a repeated slash edit
descriptor. (bug2288)
Compaq Visual Fortran Version 6.5 Release Notes 1-41

- The global name _proc appeared in both dfport.lib and
dfnls.lib causing an error during linking. This has
been corrected. (df2369)
- In list directed READ's, transfers of complex input
with repeat counts to non-complex I/O list items
would repeat the input value one too many times.
(dfb3285)
- In list directed READ's, transfers of complex input
with repeat counts to complex I/O list items would
cause an access violation. (dvf3286)
- An INDEX backwards returns the wrong value when the
search substring is matching characters (e.g., "AA")
and the string being searched contains at least the
same number of matching characters - even though the
strings may not equate. (dfb3332)
- Fixed bug that was not properly positioning a
form='binary' file that had a BACKSPACE operation
performed on it. Allow BACKSPACE on form='binary'
file without having to specify /FPSCOMP:GENERAL.
(df2221)
- A SCAN or VERIFY backwards results is an access
violation when passed a string that contains a
character greater than X'7f'. (dfb3342 & dvf9403)
- The Fortran RTL has been changed so that it now
processes the [.m] (the minimum number of digits)
portion of the edit descriptor when w (the width
field) is Zero for I, B, O, and Z editing. (dfb3351 &
cvf9587)
- Support for the new carriage control command line
option was added to the FORTRAN Run-time library.
o QuickWin related changes:
- The following new values can now be used
with SETWINDOWCONFIG extended fonts. Using
QWIN$EXTENDFONT_OEM_CHARSET with the font name 'MS
LineDraw'C will get the old DOS style character
set with symbols which can be used to draw lines
and boxes. The pitch and font family items can
be specified to help guide the font matching
1-42 Compaq Visual Fortran Version 6.5 Release Notes

algorithms used by CreateFont, the WIN32 API used
by SETWINDOWCONFIG. (dvf8571)
Pitch:
QWIN$EXTENDFONT_FIXED_PITCH QuickWin default. Equal
character widths.
QWIN$EXTENDFONT_VARIABLE_PITCH Variable character wdiths.
Font Families:
QWIN$EXTENDFONT_FF_ROMAN Variable stroke width,
serifed. Times Roman, Century
Schoolbook, etc.
QWIN$EXTENDFONT_FF_SWISS Variable stroke width, sans-
serifed. Helvetica, Swiss,
etc.
QWIN$EXTENDFONT_FF_MODERN QuickWin default. Constant
stroke width, serifedor sans-
serifed. Pica, Elite, Courier,
etc.
QWIN$EXTENDFONT_FF_SCRIPT Cursive, etc.
QWIN$EXTENDFONT_FF_DECORATIVE Old English, etc.
Character Sets:
QWIN$EXTENDFONT_ANSI_CHARSET QuickWin default.
QWIN$EXTENDFONT_OEM_CHARSET Use this to get Microsoft
LineDraw
- GEFILEINFOQQ now detects invalid file specifications
and returns FILE$ERROR. Prior to this fix, an
invalid file specification would not be detected,
and FILE$FIRST would be returned.
A memory leak in FULLPATHQQ has been fixed. A
temporary allocated block is now freed on exit from
the routine. (dvf8689)
- In DFOPNGL.F90, the "coords" argument in the
fgluTessVertex interface has been properly defined.
Missing arguments and argument definitions have been
added to fgluVertex3i.
A return value data type has been provided for
fgluBuild1DMipmaps. (dvf8799)
Compaq Visual Fortran Version 6.5 Release Notes 1-43

- SETTEXTCOLOR now allows a color index to be between 0
and 255. This fix was a correction to code which took
the index modulo 16, thus forcing the index to be in
the range [0,15]. (dvf8960)
- A memory leak in the QuickWin function DISPLAYCURSOR
has been fixed. (cvf9136)
- Two memory leaks in SETWINDOCONFIG have been fixed.
(dvf8715)
- The priority of the Windows message handling thread
has been increased to PRIORITY_ABOVE_NORMAL. Without
this change, dialogs called from QuickWin callback
routines were slow to come up, and some multithreaded
applications such as the PEEKAPP3 sample would run
slowly. (cvf9446, cvf9459)
- PASSDIRKEYSQQ has been enhanced so that it can be
used with either a logical argument as documented, or
with an integer argument. The following choices are
available as arguments for the integer version.
PASS_DIR_FALSE Turns off any special handling
of direction keys. They are
not passed to the program by
GETCHARQQ.
PASS_DIR_TRUE Turn on special handling of
direction keys, i.e. they passed
to the program by GETCHARQQ.
PASS_DIR_INSDEL INSERT and DELETE are also passed
to the program by GETCHARQQ.
1-44 Compaq Visual Fortran Version 6.5 Release Notes

PASS_DIR_CNTRLC Only needed for a QuickWin
application but harmless if
used with a Standard Graphics
application which already passes
Control+C. This value allows
Control+C to be passed to a
QuickWin program by GETCHARQQ
if the following is true. The
program must have removed the
File menu EXIT item by using
DELETEMENUQQ. This value also
passes direction keys and INSERT
and DELETE.
The older logical version of PASSDIRKEYSQQ is still
available and still operates as currently documented.
(cvf9446)
- In Standard Graphics mode, a backspace would
sometimes delete only half a character. This has
been fixed by using the correct character size in the
full screen window when deleting. (cvf8933)
- A problem with the screen size in pixels being
too small with a totally defaulted call to
SETWINDOWCONFIG has been fixed. (cvf9664)
- A memory leak caused by repeated opening and closing
of QuickWin windows has been fixed. (cvf8720)
- A memory leak caused by repeated use of DISPLAYCURSOR
in a QuickWin program has been fixed. (cvf9424)
- A problem with CLEARSCREEN($GWINDOW) causing access
violations has been fixed. (dvf7932, dvf8762,
dvf9243)
- If a user sets up his own menu in INITIALSETTINGS
using only INSERTMENUQQ rather than APPENDMENUQQ,
then SETWSIZEQQ will not work with child windows
later in the program. This problem has been fixed
by ensuring that an initialization flag is always
turned off whether the user or the system sets up the
initial menu. (dvf9780)
Compaq Visual Fortran Version 6.5 Release Notes 1-45

- On the Windows 2000 OS, QuickWin child windows were
being incorrectly created with a variable pitch or
proportional default font. This has been fixed, and
child windows now have the old default fixed pitch
font which was Courier New. (dvf9804)
- A bad range check in DELETEMENUQQ which caused an
internal error in QWGUMENU.C under certain complex
conditions has been fixed. Also, a bad index into
the user-menu-callback-routine array which caused a
memory access error has been fixed. (dvf8165)
The following changes have been made to VF T6.2.T Beta 1
since VF v6.1A shipped:
o The following changes have been made to the RTL {-745}:
- An incorrect end-of-file error occurs when list
directed input is used to read from character*1
arrays. Elements of character*1 and arrays of
character*[2-max] work okay. (dvf3408 and cvf10469)
- A new routine CLEARSTATUSFPQQ() has been added for
V6.5. This routine allows the user to clear the
Intel floating point status register flag bits. It
is useful when polling is used to determine if a
floating point exception has occured. An example is
included in the on-line samples. This routine is only
available on Intel platforms.
- A new routine GETEXCEPTIONPTRSQQ() has been added
for V6.5. This routine allows users who have
established signal handlers thru SIGNALQQ() or the
C rtl signal() routine to gain access to exception
context information. It can be used in such handlers
as an argument to TRACEBACKQQ() to generate a stack
trace at the time of an exception. An example is
included in the on-line samples.
- Support for reading nondelimited character strings as
input for character NAMELIST items has been added.
A character string does not need delimiting
apostrophes or quotation marks if the corresponding
1-46 Compaq Visual Fortran Version 6.5 Release Notes

NAMELIST item is of type default character, and the
following is true:
* The character string does not contain a blank,
comma, slash, exclamation (!), ampersand (&),
dollar sign ($), left parenthesis, equal sign (=),
percent sign (%), or period (.).
* The character string is not continued across a
record boundary.
* The first nonblank character in the string is not
an apostrophe or a quotation mark.
* The leading character is not a string of digits
followed by an asterisk.
A nondelimited character string is terminated
by the first blank, comma, slash, end-of-record,
exclamation, ampersand, or dollar sign encountered.
Apostrophes and quotation marks within nondelimited
character strings are transferred as is.
Should an equal sign, percent sign, or period be
encountered while scanning for a nondelimited
character string, the string will be treated as
a variable name (or part thereof) and not as a
nondelimited character string.
Be forewarned, that nondelimited character strings
that are written out by using a NAMELIST write
may not be read in as expected by a corresponding
NAMELIST read.
Given the following example code:
NAMELIST/TEST/ CHARR
CHARACTER*3 CHARR(4)
DATA CHARR/'AAA', 'BBB', 'CCC', 'DDD'/
OPEN (UNIT=1, FILE='NMLTEST.DAT')
WRITE (1, NML=TEST)
END
The output file NMLTEST.DAT will contain:
&TEST
CHARR = AAABBBCCCDDD
/
Compaq Visual Fortran Version 6.5 Release Notes 1-47

Should an attempt be made to read the data in
NMLTEST.DAT back in with a NAMELIST read using
nondelimited character strings:
NAMELIST/TEST/ CHARR
CHARACTER*3 CHARR(4)
DATA CHARR/4*' '/
OPEN (UNIT=1, FILE='NMLTEST.DAT')
READ (1, NML=TEST)
PRINT *, 'CHARR read in >', CHARR(1),'< >',CHARR(2),'< >'
,
1 CHARR(3), '< >', CHARR(4), '<'
END
will result in:
CHARR read in >AAA< > < > < > <
- 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 will now result in a fatal
message being generated.
- The runtime library now contains support for a new
environment variable, FORT_CONVERT_ext that allows
a user to associate a foreign data conversion option
with files of a particular file extension. See the
documentation for more details.
o QuickWin related changes:
- A QuickWin child window normally has its system menu
close item removed, and the X buttom on the upper
right corner is disabled. When such a window is
closed with the disposition equal to "KEEP", the
close menu item is enabled so the user can remove the
window when ready. A bug in releasing the resources
of such windows made it impossible to ever open more
than 40 windows, even if the old ones were removed
from the screen by using the system menu close or X
button. This problem has now been fixed. (cf2485)
1-48 Compaq Visual Fortran Version 6.5 Release Notes

- In a callback routine a window in input wait was not
being moved by SETWSIZEQQ because the data structures
needed to access it were locked. This problem has
been fixed. (cvf8684)
The following changes have been made to VF T6.2.U Beta 2
since VF T6.2.T Beta 1 shipped:
o The following changes have been made to the RTL {-753}:
- The runtime library has been changed to perform
more thorough edit checking on list directed input.
Previously, the RTL was liberal in what it accepted
for input to integer and real values. In accordance
with the F95 Standard, the RTL no longer accepts
"+", "-", ".", "D", "E", or "Q" without expressing at
least 1 digit. For example, the RTL used to allow
a single "+" to convert to a 0, but now the RTL
will return a FOR$IOS_LISIO_SYN error. In addition,
ambiguous expressions such as "+-" and "-" will be
rejected. (dfb3350 & dvf9422)
- An objcomment has been added to dfwinty.f90:
!DEC$OBJCOMMENT LIB:"DFWIN.LIB"
This will place a reference to dfwin.lib into
dfwinty.mod. The reference to dfwin.lib will
propagate into any object files (as a defaultlib
linker directive) that are built from a source with
a "use dfwinty" in them. There are 21 data items
referenced within dfwinty.mod that are defined
within dfwinty.obj. dfwinty.obj is contained
within dfwin.lib and thus it is appropriate for the
dfwin.lib library to be referenced in dfwinty.mod.
o QuickWin related changes:
- Support was added for the new graphics function
SETTEXTCURSOR. This function sets the height and
width of the text cursor (the caret) for the window
in focus. For more information on this function,
please refer to the documentation.
Compaq Visual Fortran Version 6.5 Release Notes 1-49

The following changes have been made to VF T6.2.U Beta 2
plus since VF T6.2.U Beta 2 shipped:
o The following changes have been made to the RTL {-760}:
- All of the .MOD files shipped with VF were recompiled
with the VF T6.2.U Beta 2 plus compiler.
The following changes have been made to VF v6.5 since VF
T6.2.U Beta 2 plus shipped:
o The following changes have been made to the RTL {-764}:
- A problem related to formatted direct access reading
when more bytes are required in the I/O list than
specified by the record length and the I/O list item
is of type character which is padded out with blanks
was fixed. (cvf11036)
- The T_POINTS data type in dfwinty.f90 has been
corrected so that the X and Y elements now have an
INTEGER(2) data type. (cvf11170)
- On x86 platforms, with options /fpe:0 and /math_
library:check selected, an interaction between
the Fortran rtl default exception handler and the
math library prevented execution of a user defined
MATHERRORQQ routine. This problem has been fixed.
(dvf8807)
- In some cases, console typeahead input to an
application would be corrupted. The underlying cause
is a WIN32 bug with reading input from a console.
If a user doing typeahead inputs a few characters
before the call to ReadFile() (or ReadConsole())
is executed, and then types the rest of his input
after (i.e., during) the call, the OS will clobber
the input in the receive buffer by the number of
bytes requested in the ReadFile() call. This is true
for number of bytes requested less than or equal to
40. It works as expected if you ask for at least 41
bytes.
The Fortran rtl was changed at one time to
specifically only request 1 byte at a time when
reading from stdin. This was done to solve another
problem, multple units sharing a redirected stdin.
The solution to the current typeahead problem is
1-50 Compaq Visual Fortran Version 6.5 Release Notes

to change the Fortran rtl so that 1 byte at a time
reads are only done for nonconsole io. The rtl will
continue to read 1 byte at a time if stdin is a file
or pipe, but not if stdin is specifically the console
device. (cvf11307)
o QuickWin related changes:
- A program termination problem in CVF6.1A has been
fixed. In rare instances, a QuickWin program with
open child windows would cause the operating system
to freeze when in the STOP routine. (cvf1084)
- On Windows 95/98 systems, if a Quickwin program was
exited by Ctrl+C or a close menu item while the sound
produced by BEEPQQ was on, the sound would continue
long after the program was terminated. This has been
corrected. (cvf11024)
The following restrictions exist in the VF v6.5 RTL:
o One of the new routine interfaces added to update the
VF header files to the Visual C++ v6 level has caused a
conflict:
LOADIMAGE appears in both DFLIB (as a Quickwin routine)
and in DFWIN (as a WIN32 API). The solution to this
problem is simply to rename the LOADIMAGE you don't want
to something else. For example:
USE DFLIB
USE DFWIN, API$LOADIMAGE=>LOADIMAGE ! give WIN32 API a new
! name which won't
! conflict with the
! QuickWin routine
LOADIMAGE will now refer to the QuickWin routine. If the
API is also needed, use the name API$LOADIMAGE to get
it.
The following problems still exist in the VF v6.5 RTL:
o In certain cases with the number of colors greater than
256, SAVE has been observed to cause an internal error.
If this occurs, please file a problem report.
o ALPHA NT specific:
Compaq Visual Fortran Version 6.5 Release Notes 1-51

A subroutine which contains an ENTRY statement and
which generates an exception at runtime, may cause the
operating system to incorrectly process the exception.
Symptoms may include hanging the application when the
exception occurs or simply 'missing' the exception. The
problem is in the procedure descriptors generated by the
compiler. This problem exists in VF V5.0 and VF V6.*. It
is still under investigation at this time. (dvf5064)
o When doing mixed language programming with Fortran and
C, one important point to get right is that you want to
link your application against one and only one copy of
the C library.
The preferred method to do this is to get your project
settings for both Fortran and C to agree on the default
C library to link against.
Fortran picks default libraries depending on your
Project->Settings, Fortran tab selections. Using options
from:
"category:Libraries->Use Fortran Run-time Libraries" and
"category:Libraries->Use C Debug Libraries",
Here are the default libraries you will see selected:
_________________________________________________________________
Use Multi- Use C
Static threaded Debug Fortran Link
or_DLL___Library______Libraries___Lib____________C_Link_Lib______
Static no no dfor.lib libc.lib
Static no yes dfor.lib libcd.lib
Static yes no dformt.lib libcmt.lib
Static yes yes dformt.lib libcmtd.lib
DLL no no dfordll.lib msvcrt.lib
(dforrt.dll) (msvcrt.dll)
DLL no yes dfordll.lib msvcrtd.lib
(dforrt.dll) (msvcrtd.dll)
DLL yes no dformd.lib msvcrt.lib
(dformd.dll) (msvcrt.dll)
DLL yes yes dformd.lib msvcrtd.lib
__________________________________(dformd.dll)___(msvcrtd.dll)___
1-52 Compaq Visual Fortran Version 6.5 Release Notes

Here's how C picks the default library. Under "Project->
Settings->C/C++->category:Code Generation->Use run-time
library" there is a choice of 6 different C libraries.
________________________________________________________
CL Option Default Library
Menu_Item_Selected____Enabled_____Specified_in_obj______
Single-threaded /ML libc.lib
Multithreaded /MT libcmt.lib
Multithreaded DLL /MD msvcrt.lib
(msvcrt.dll)
Debug Single- /MLd libcd.lib
threaded
Debug Multithreaded /MTd libcmtd.lib
Debug Multithreaded /MDd msvcrtd.lib
DLL_______________________________(msvcrt.dll)__________
The following differences in run-time behavior between
Visual Fortran and Microsoft Fortran PowerStation should be
noted:
o The Visual Fortran RTL does not support MBCS characters.
o The Visual Fortran RTL supports only a variable of the
character data type as a format data specifier (ie.;
write(unit,FMT=character_data_type_variable)). Therefore
Integer and Real expressions cannot be used as the
format specifier in an I/O statement.
o The Visual Fortran RTL supports only the character data
type for Internal files.
o The Visual Fortran RTL does not support the Fortran
Powerstation I/O status (IOSTAT) values. Thus, the
Visual Fortran RTL returns its own unique I/O status
values.
o The Visual Fortran RTL does not support the Fortran
Powerstation I/O messages. Thus, the Visual Fortran RTL
returns its own unique I/O error message values.
o For the INQUIRE statement BLANK= keyword, the Visual
Fortran RTL will return a value of "UNDEFINED" for a
file which was not opened as formatted. This complies
with the F90 standard. This behavior is different from
Compaq Visual Fortran Version 6.5 Release Notes 1-53

Fortran Powerstation which returned a value of "NULL" or
"ZERO".
o For the INQUIRE statement PAD= keyword, the Visual
Fortran RTL will return a value of "YES" for a file
which was not opened or connected. This complies
with the F90 standard. This behavior is different
from Fortran Powerstation which returned a value of
"UNDEFINED".
o The Visual Fortran RTL will return an error if the PAD=
or DELIM= specifier is present on the open statement and
the file was not opened as formatted. This complies with
the F90 standard.
o The Visual Fortran RTL will return an error if the
POSITION= specifier is present on the open statement
and the file was not opened with sequential access.
This complies with the F90 standard. This behavior is
different from Fortran Powerstation which failed to
return an error.
o The Visual Fortran RTL recognizes files opened as
CONOUT$ and CONIN$ as the terminal. This behavior
is different from Fortran Powerstation which didn't
recognize these special devices names as the terminal.
o The Visual Fortran RTL does not support the use of
negative unit numbers. This complies with the F90
standard.
o The Visual Fortran RTL does not support the use of the
'*' operator as the unit number on an INQUIRE statement.
o The Visual Fortran RTL supports only the record type of
'STREAM' for the "RECORDTYPE" value when dealing with
Fortran Powerstation Unformatted files.
o The Visual Fortran RTL supports only the record type
of 'FIXED' for the "RECORDTYPE" value when dealing with
files opened for Direct access.
o The Visual Fortran RTL does not support the reading and
writing of direct access records using Sequential I/O
statements.
1-54 Compaq Visual Fortran Version 6.5 Release Notes

o The Visual Fortran RTL does not support the writing of
direct access formatted records with a carriage control
value of 'FORTRAN'.
o The Visual Fortran RTL has an additional carriage
control attribute value called 'NONE'. Thus, the default
carriage control attribute is different from that of
Fortran Powerstation when dealing with different file
types. For unformatted and binary files the default
carriage control attribute is 'NONE' as opposed to the
value of 'LIST' which is given by Fortran Powerstation.
o The Visual Fortran RTL does not support the Fortran
Powerstation semantics for the Binary(B), Octal(O) and
Hexidecimal(Z) edit descriptors.
o The Visual Fortran RTL output text when printing
namelist elements is different, but should be equivalent
to that of Fortran Powerstation.
o The Visual Fortran RTL when outputting real numbers will
always print a leading zero(0)(ie.; 0.567) if there is
room. This is different than Fortran Powerstation which
does not always print the leading zero(0)(ie.; .567) if
there is room.
o The Visual Fortran RTL does not support the MATHERRQQ,
GETCONTROLFPQQ, SETCONTROLFPQQ, and GETSTATUSFPQQ
routines on non-Intel Platforms(ie.; Alpha)
o The Visual Fortran RTL applies the rules for Iw format
editing when G format output editing is specified for an
integer data type. This complies with the F90 standard.
Fortran Powerstation applies the rules for Iw.m format
in this case.
o The Visual Fortran RTL does not interpret the
backslash(\) edit descriptor on input, it has no
effect. This is unlike Fortran Powerstation which does
interpret the backslash(\) edit descriptor on input.
This is in contradiction with the Fortran Powerstation
documentation which states it has effect only on output.
o The Visual Fortran RTL does not support what appears to
be an inconsistency with the F90 standard and Fortran
Powerstation list-directed output. Fortran Powerstation
properly places a separator between most data types
Compaq Visual Fortran Version 6.5 Release Notes 1-55

(ie.; int-int, int-real, real-int, logical-int, etc).
However it fails to place a separator between an
undelimited character string and any other adjacent data
type. For delimited characters they properly add the
separator. The former behavior appears to be a violation
of the F90 standard. See section 10.8.2 which states
the following: "The form of the values produced is
the same as that required for input, except as noted
otherwise. With the exception of adjacent nondelimited
character constants, the values are separated by ONE
or MORE BLANKS...." Thus, there should be no separator
between two nondelimited character constants, but there
should be a separator between a nondelimited character
constant and any other adjacent data type.
1.8 Compaq Extended Math Library (CXML) Release Notes
Please read this document before installing or using the
Compaq Extended Math Library (CXML).
This document contains important installation information
and release notes about using CXML with Compaq Visual
Fortran. The information in this document is more up-to-
date than the CXML Reference Guide or other associated
documentation. When installing or using CXML, please note
the following:
o To install CXML, you must specify the "custom"
installation option when installing Compaq Visual
Fortran. The "standard" installation option will not
install CXML.
Note: After you have finished installing Compaq Visual
Fortran, you must run the Per-User Setup application in
the Visual Fortran program folder.
o CXML is available both as a static library and as a DLL.
o Source files to build CXML module files are located in
the INCLUDE directory.
o To automatically link a program with the CXML library
and obtain access to the CXML interface blocks, you
should insert the following statement as the first line
of the program unit:
1-56 Compaq Visual Fortran Version 6.5 Release Notes

INCLUDE 'CXML_INCLUDE.F90'
This allows the proper CXML library (either CXML.LIB or
CXMLDLL.LIB) to be linked.
Refer to the following documentation for information about
installing and using CXML:
___________________________________________________________
For Information
About:______________See:___________________________________
Installation "Using Setup to Install Visual Fortran
and Related Software" in Compaq Visual
Fortran Installing and Getting Started
Introductory "CXML Libraries" in Compaq Visual
material and Fortran Installing and Getting Started
features
Usage "Using the CXML Math Libraries" in
Compaq Visual Fortran Programmer's
Guide
Routine_reference___CXML_Reference_Guide___________________
1.9 Developer Studio Release Notes
The following changes have been made to Developer Studio
6.5 since VF v6.1A shipped:
o Developer Studio enhancements:
- The "Generate Code For" and "Processor to Optimize
For" options now contain entries for:
Pentium III
AMD K6
AMD K6-2 and K6-III
AMD ATHLON
o Developer Studio fixes:
- Fixed a Module Wizard problem concerning a memory
leak of input strings.
Compaq Visual Fortran Version 6.5 Release Notes 1-57

o DFCOM module enhancements:
- Two new rotuines have been added to the DFCOM
module:
* COMIsEqualGUID - tests two GUIDs for equality
* COMStringFromGUID - returns the string
representation of a GUID
o DFCOM module fixes:
- Fixed the COMGetActiveObjectByGUID routine to act
as intended. The routine now calls the routine
GetActiveObject rather than CoGetClassObject.
The interface has change to remove the "clsctx"
argument which is not necessary. If you were
calling COMGetActiveObjectByGUID, please call the
CoGetClassObject API directly instead.
o DFAUTO module enhancements:
- The interface to the AUTOAddArg subroutine has
changed. The interface was:
CALL AUTOAddArg (invoke_args, name, value [, output_arg] [,
type])
where: "output_arg" was defined as:
Indicates whether the argument's value is set by
the called method. Must be of type LOGICAL.
The new interface is:
CALL AUTOAddArg (invoke_args, name, value [, intent_arg] [,
type])
where: "intent_arg" is an integer value that
indicates the intended use of the argument (AUTO_
ARG_IN, AUTO_ARG_OUT, AUTO_ARG_INOUT).
The change was made to fix some memory management
problems that could occur when using this routine.
The previous interface continues to exist and behaves
as it did in the past. Only the new interface is
documented. New code should use the new interface.
The Fortran Module Wizard now generates code using
the new interface.
o DFAUTO module fixes:
- Fixed some memory leaks.
1-58 Compaq Visual Fortran Version 6.5 Release Notes

The following changes have been made to Developer Studio
6.1A since VF v6.1 shipped:
o Developer Studio enhancements:
- New options in Fortran Options pages:
* Default Output Carriage Control (/ccdefault)
* Add CMXL libraries to link (/cxml)
* Add IMSL libraries to link (/imsl)
* Allow SEQUENCE types to be padded for alignment
(/align:sequence)
o Developer Studio fixes:
- Improved Fortran build dependency information.
- Minor fixes in Fortran Options pages.
- Fixed Module Wizard problem regarding COM servers
create by Visual Basic.
The following changes have been made to Developer Studio
6.1 since VF v6.0B shipped:
o Developer Studio enhancements:
- Fixed Module Wizard problem regarding the code
generated for an Automation Property Put with
multiple arguments.
- Compilation ordering (builds) has been improved
to reduce the number of rebuilds necessary to
successfully build complex projects.
- Renaming a generated listing file is restricted to
when only the file is selected (property sheet).
The following changes have been made to Developer Studio
6.0B since VF v6.0A shipped:
o Developer Studio fixes:
- Corrected the include search path used during IDE
builds and makefile generation to include the Module
Path (/module:).
- Improved Fortran build dependency information in
exported makefiles.
Compaq Visual Fortran Version 6.5 Release Notes 1-59

- Corrected temporary file specification when directory
contains blank characters.
o DFAUTO module fixes:
- Fixed crash handling an empty BSTR.
- Fixed problem with using DFAUTO in a program that
linked against the Fortran run-time library DLL.
o An updated REGUSER.EXE is included that sets the "Always
export dependencies" registry entry.
The following changes have been made to Developer Studio
6.0A since VF v6.0 shipped:
o Enhancements:
- You can associate a comment with a Fortran
Environment when saving it.
- There is a new icon in the Fortran toolbar. It is
named "Manage Saved Fortran Environment" and it
displays your saved Fortran environments. It allows
for selective deletion of saved environments and
duplicate scanning. It also allows you to rename the
environment or change the comment.
- When you create a new project with a Visual Fortran
v6.* project wizard, the Debug configuration contains
an additional default compiler switch setting which
aids in debugging. This is /traceback. You may
modify your project settings to remove this entry
if desired.
- Bugs with setting the /transform_loops and /pipeline
options from Developer Studio have been fixed.
The following changes have been made to Developer Studio
6.0 since VF v5.0.A shipped:
o Enhancements:
- When you create a new project with a Visual Fortran
v6 project wizard, the Debug configuration contains
additional default compiler switch settings which
aid in debugging. These are: /check:bounds and
/warn:argument_checking You may modify your project
settings to remove these entries if desired.
1-60 Compaq Visual Fortran Version 6.5 Release Notes

- The new DFDEV command allows you to build a Visual
Fortran project from the command line without first
exporting a makefile (projname.mak) and running the
NMAKE utility. See "Building a Project from the
Command Line" in the Visual C++ User's Guide. Note
that you must use "DFDEV" rather than "MSDEV" as
documented in the Visual C++ User's Guide.
- QuickWin and Standard Graphics projects can now be
copied from the Intel platform to the Alpha platform
and vice-versa. This did not work with v5.0.A.
- When using files with the .fpp file extension, you no
longer need to edit the makefile and add the line:
.SUFFIXES: .fpp
as was necessary with v5.0.A.
- Visual Fortran now supports the "Attach To Process"
menu item on the Debug menu as described in the
Visual C++ User's Guide. This did not work with
v5.0.A.
o Known Problems:
- The /WARN:ERRORS Fortran compiler option is not
always correctly carried forward when converting a
project from V5 to V6.*. If you have set /WARN:ERRORS
on a V5 project, you should check the setting after
Developer Studio has converted the project to the V6
format and verify that /WARN:ERRORS remains set.
- When a Standard Graphics project is opened, the
Fortran Libraries category does not correctly map
the /libs:qwins from the Project Settings edit box
to:
Use Fortran Run-Time Libraries: Standard Graphics
This is an appearance problem only - /libs:qwins is
used when the project is built. Changing the setting
of "Use Fortran Run-Time Libraries:" to Standard
Graphics results in an additional /libs:qwins
appearing in the Project Settings edit box.
Compaq Visual Fortran Version 6.5 Release Notes 1-61

- The Fortran editor does not handle tab indents
properly. This problem occurs when editing a fixed
format source file and using tabs at the beginning
of the line. When you have multiple tabs at the
beginning of a line and press ENTER, the cursor is
positioned to the same indent level as the previous
line. However, when you type the first character on
the new line, all but the first tab are deleted. Here
are two workarounds:
1. Press Tab as the first character on the new line
and then Backspace to delete it.
2. Select the Tools menu, Options item, Tabs tab.
Select "Insert spaces" and set "Auto Indent" to
None.
- Under Developer Studio, selecting AutoIndent with
Tabs replaced by Spaces for editing Fortran sources
(under the Tools->Options->Tabs page) does not work
as expected. Using this combination will result
with tabs randomly being inserted and incorrect
indentation.
- If you install both Visual Fortran v6.* and Visual
Fortran v5.0.A, 5.0.B, 5.0.C, or 5.0.D, when you
select the "About..." entry in the Help menu, both
versions will display that they are the Visual
Fortran v6.* version. This is a bug in the v5.0
version. Other information in the About box will
identify the version as Developer Studio 97 (which is
v5).
o Troubleshooting:
- If you install both Visual Fortran v6.* and the
Visual C++ 6.0 with the MSDN Library Visual
Studio 6.0, selecting Contents, Search, and Index
from the Developer Studio Help menu may display
the MSDN documentation. In order to view the VF
documentation:
* Use the "Online Documentation" icon in the "Visual
Fortran 6" folder.
1-62 Compaq Visual Fortran Version 6.5 Release Notes

* Change the "Preferred collection" in Developer
Studio; see the Tools menu, Options item, Help
System tab.
- To use the Visual Studio 98 documentation, you need
to have the version of HTML Help shipped with Visual
Fortran v6.* installed on your computer. If you
don't have a compatible version of HTML Help on your
computer, and you open the Help system, you may get
one of these messages:
"Cannot open the file DF60.COL"
"You need a newer version of HHCTRL.OCX to be able to r
ead this file."
To fix the problem, copy the file, HHCTRL.OCX, from
the ...\SUPPORT\HH\SYSTEM directory on the CD-ROM to
your hard drive as follows:
_____________________________________________________
Copy the file to this
If_your_system_is:____directory:_____________________
Windows 9* Windows directory\system
Windows NT 4 Windows directory\system32
Windows_2000__________Do_not_copy_the_file___________
- When you select "Build browse info file" in the
Browse Info option page, Developer Studio may display
the following message:
"The Browser Information file will not be created unles
s
'Generate browse info' is checked on the C/C++ settings
page for
the target or at least one file"
For Fortran-only Developer Studio projects, check
'Generate Source Browse Information' on the Fortran
page, General category. You do not need to set any
C/C++ settings.
- When using the Source Browser in Developer Studio for
browsing Fortran code, be sure to uncheck the "Case
Sensitive" check box at the bottom of the "Browse"
dialog box. This allows the Source Browser to find
occurrences of Fortran symbols regardless of the case
used in the sources.
Compaq Visual Fortran Version 6.5 Release Notes 1-63

- If you receive "Unexpected error returned by Array
Visualizer" when attempting to view an array from the
debugger, please try the following. From a command
window, run:
REGSVR32 Windows directory\System32\ATL.DLL
- If the files created during a build appear to be
out of date, and you are running Visual Fortran on
Windows 95 or Windows 98 operating systems, there
is a possibility that the timestamps on the files
created during a build can be off by up to 2 seconds.
With faster machines and performance improvements in
the linker, this can cause the .OBJ files to have a
later timestamp than the result of the linker. This
makes some projects appear out-of-date after a build
and thus Visual Fortran may incorrectly indicate
that another link is needed. If you encounter this
problem, you can work around it by adding a pre-link
build rule to your project that takes 2 seconds or
longer. Executing a console application that does a
"CALL SLEEP(2)" will work fine.
- If you install Visual Fortran v6.* on a system with
Visual C++ v5 please note the following concerning
mixed-language programming with Fortran and C/C++.
You will not be able to perform mixed Fortran v6
and C/C++ v5 programming in either environment. Note
that if you also have Visual Fortran 5.0 installed
on the system, then you can continue to perform mixed
Fortran v5 and C/C++ v5 programming in the Visual
Studio 97 environment. To perform mixed Fortran v6
and C/C++ v5 programming, you will need compile your
C/C++ code using Visual C++ v5, and then add the
object files to your Visual Fortran v6.* project.
This is done using the normal method of adding files
to a project. The object files generated using Visual
C++ v5 will be linked with your Fortran code. You
will be able to debug your mixed language application
from the Visual Fortran v6.* environment.
- If Developer Studio repeatedly aborts while
attempting the same action with the same project,
try moving the project.opt file out of the project
directory. The project.opt file contains local
1-64 Compaq Visual Fortran Version 6.5 Release Notes

cosmetic settings, which include information about
the local organization and appearance of the project
workspace using your hardware and configuration. A
new project.opt file is created automatically when
the workspace is opened and no project.opt file is
found.
NOTE: this problem is frequently encountered when
you are using a project which was created on a system
with both Visual C++ and VF installed and have copied
the project (including the project.opt file) to a
system with only VF. The abort typically occurs when
you start the debugger. This can also occur if your
system has Visual C++ V5 and VF V5, and you upgrade
to VF V6.*, but do not upgrade to Visual C++ V6 at
the same time.
- If the screen flashes during builds or the wrong code
page is used when debugging a console application,
and you are using Windows 95, delete any of the
following files from your computer:
_DEFAULT.PIF, DEFAULT.PIF, CONAGENT.PIF
These files were used by Windows 3.x, and are not
needed by Windows 95. If they are used while you are
debugging a console application, the country settings
associated with the PIF files will be used, and could
result in the wrong code page being loaded. A result
of their use on Windows 95 may be screen flashing
during a build, if you have specified console windows
to be full screen.
o Limitations:
- The following limitations exist in Fortran make files
exported from Developer Studio:
1. The "CLEAN" target in the make file does not
delete .PDB files created by the Fortran compiler.
2. NMAKE sometimes compiles the same file twice when
the source contains a MODULE definition which is
USEd by other source files in the project.
- Fortran editor does not support the following Edit
menu commands: List members, Type info, Parameter
info, Complete word.
Compaq Visual Fortran Version 6.5 Release Notes 1-65

- Fortran editor syntax coloring has limitations. The
syntax coloring in the Developer Studio editor cannot
correctly color all valid Fortran source programs. In
particular, white space is required around keywords
in order for the editor to correctly recognize them.
Also, keywords may be highlighted even when they are
not being used as keywords in the source program.
1.10 Compaq Array Visualizer Release Notes
This section provides release notes for Compaq Array
Visualizer:
o Section 1.10.1, Compaq Array Visualizer Overview and
Description of Features
o Section 1.10.2, Array Visualizer News
o Section 1.10.3, Using the Fortran Array Visualizer from
the Debugger
o Section 1.10.4, The Fortran Array Visualizer Uses HDF
Libraries
1.10.1 Compaq Array Visualizer Overview and Description of
Features
The Array Visualizer is a set of software components that
enables you to visualize array data interactively. Any
integer or real type array of rank 1-7 can be viewed using
the array visualizer software. The Array Visualizer also
defines a binary file format (.agl) that can be used to
save array data for later analysis. Visual Fortran Standard
Edition contains only the Compaq Array Viewer.
The Array Visualizer consists of:
o Compaq Array Viewer
The Array Viewer (AViewer) is an executable program that
can load and display .agl or .hdf files. Array Viewer
displays the array data in two adjustable panes:
- The top pane shows a scrollable spreadsheet-style
view of the array data.
- The bottom pane displays a graphical view of the
array data.
1-66 Compaq Visual Fortran Version 6.5 Release Notes

There are four viewing modes in which the graph can be
displayed:
- Height Plot displays the array data as a 3D surface
where the X and Y dimensions correspond to the
array indexes and the array elements are mapped as
a displacement in Z. This option is only available
for arrays of rank 2 or higher.
- Image Map displays the array data as a 2D image
where the X and Y dimensions correspond to the array
indexes and the array elements are mapped to a color
range. This option is only available for arrays of
rank 2 or higher.
- Vector Graph displays the array data as a series of
2, 3, or 4 component vectors. In this mode an array
is viewed as a list of vectors. For example an array
declared as M(3, 500) would consist of 500 vectors
of the form (x, y, z). The first three components are
mapped to the x, y, and z axis. The fourth component
(if present), is mapped to a color using the color
palette. This option is only available for arrays of
rank 2 or higher.
- 2D View displays the array data as a conventional
2D graph where the X dimension corresponds to the
array index and the array elements are mapped as
a displacement in Z. This option is available for
arrays of rank 1 or arrays of higher rank but with 10
or fewer rows.
o Aview Library
The Aview library (aview.lib) is a small set of
subroutines that enables any Fortran application to
display array data with Array Viewer. The Aview library
can also be used to directly save array data to an .agl
file for later viewing with the Array Viewer. The AVDef
module defines the Fortran interface for the Aview
library. There is also a C language interface defined
in avdef.h. The \Program Files\ArrayVisualizer\Samples
directory includes example programs that use the Aview
library.
o Avis2D ActiveX Control
Compaq Visual Fortran Version 6.5 Release Notes 1-67

The Avis2D ActiveX (ocx) control, can be used by any
development environment that supports ActiveX controls.
For example Visual C++/MFC or Visual Basic, and now
with the 6.1 release, Visual Fortran. The Avis2D
control enables the application to display array data,
as a height field or image view, within one of its
applications windows. The Avis2D control provides more
than 100 properties and methods that the application can
use to customize its behavior.
o AvisGrid ActiveX Control
Like the Avis2D control, the AvisGrid control can be
used by any development environment that supports
ActiveX controls. The AvisGrid control can be used to
display array data numerically in a scrollable window.
AvisGrid shares many of Avis2D's properties and methods.
o Developer Studio Enhancements
The Developer Studio debugger now supports the ability
to select an array in the watch window and use the Array
Viewer to inspect it. The view can be updated to observe
changes in the array data as the program executes.
1.10.2 Array Visualizer News
These are the following Known Problems and Limitations:
o Array Viewer:
- In 256-color mode, the datatip window sometimes
reports an incorrect value.
o HDF:
- The Array Viewer cannot save files in the HDF
format.
o AView Library
- Reading an .agl file is not supported.
New Features/Bug Fixes:
o Version 1.5 release:
- A problem with negative length values in the ROI
settings dialog for large arrays has been fixed.
1-68 Compaq Visual Fortran Version 6.5 Release Notes

- Array Visualizer v1.5 replaces Array Visualizer
v1.1A. There are no released versions of Array
Visualizer numbered 1.2, 1.3, or 1.4.
o Alpha users should be aware that support for Windows NT
Alpha systems ends December 31, 2000. Releases of Visual
Fortran after Version 6.5 and Compaq Array Visualizer
1.5 will no longer support Windows NT Alpha systems.
o Version 1.2 (beta 2) release:
- The Array Viewer now has a file menu option to load a
data file from an Internet URL.
- The Array Viewer Options dialog now has a check box
to enable editing properties through the Data and
Graph View's property pages. This allows setting some
options (such as line width) that aren't accessible
through the Settings menu entries. However, changes
made in this manner won't be retained if the array is
saved as an AGL file.
- Changes have been made to the Avis2D and AvisGrid
controls to enable them to be used inside html pages.
- A resource leak in Array Viewer that occurred on
Windows 95 and 98 systems has been fixed.
- The Array Viewer (and Avis2D control) now use
software based OpenGL rendering as the default.
We've found that many graphics adapters don't support
OpenGL correctly, resulting in rendering artifacts
or crashes. If your adapter does support OpenGL
acceleration and is reliable, you can enable it by
checking the Checkbox in the Array Viewer Options
dialog and restarting Array Viewer.
o Version 1.2 (beta1) release:
- Printing from Array Viewer has been improved.
- Axis tickmark labels now always have fixed
increments.
- HDF release 4.1r3 is now used by Array Viewer to
display HDF files.
- A resource leak in the AnimWin32 sample has been
fixed.
Compaq Visual Fortran Version 6.5 Release Notes 1-69

- The graph view in Array Viewer (and the Avis2D
control) now changes the cursor to indicate when
the view is being change.
- Axis settings dialog now displays correct axis/dim
name.
- The Array Viewer Options dialog, now has a checkbox
that can be used to turn off OpenGL hardware
acceleration and use the generic GDI OpenGL drivers
instead.
- COMINITIALIZE is no longer required for QuickWin
programs that use the AView library.
- The Palette Editor now allows spline curves to be
used when editing palette colors.
- Height Plot graphs now use 1D textures by default.
- Barchart style for Height Plot graphs has been
enhanced and a problem with printing has been fixed.
- Logical and Complex arrays can now be viewed with
Array Viewer from the Visual Fortran debugger and can
also used as arguments to faglStartWatch, faglShow,
etc.
- The HDF libraries are no longer provided on
the Array Visualizer CD. The latest version
of the HDF libraries can be downloaded from:
http://hdf.ncsa.uiuc.edu.
o Version 1.1A release:
- A problem in the 1.1 release prevented Vector Graphs
from being displayed as a series of connected line
segments. This has been fixed in 1.1A. Use the Vector
Graph Settings dialog in Array Viewer to switch
between point style and line style.
o Version 1.1 release:
- The AvisGrid control was added.
- The ArrayViewer Data View window is no longer is
limited to 500x500 cells, and now supports editing
cell values.
1-70 Compaq Visual Fortran Version 6.5 Release Notes

- Array Viewer now allows the axis legends to be
customized
- The Array Viewer has a Palette Editor that can be
used to create custom palettes.
- The Array Viewer has two new toolbars that can be
used to change the Region Of Interest (ROI).
- The Array Viewer has improved support for displaying
small (10^-10 or less) floating point values.
- The Aview library routines favUpdate and
CAViewer::Update now have an option that forces the
ArrayViewer to update before returning.
- The Aview library has two new subroutines:
faglGetShareName (Fortran) and aglGetShareName (C)
that can be used in conjunction with the AvisGrid and
Avis2D controls to display array data.
- The Aview library supports new fav and CAViewer
routines to allow programmatic access to new Array
Viewer features (such as Axis labeling).
- The Avis2D control has two new methods designed
for Visual Basic users CopyAxisScaleData and
CopyPaletteData. These methods can be used to pass
a Visual Basic array to the control as axis scale
data and custom palette data respectively.
- The Avis2D control event, RndrPass, has a parameter
to inform the container of whether this is the final
repaint for the last Update call.
- The Avis2D control transparently supports printing.
- There are many new sample programs.
o Version 1.0B release:
- There is a new Avis2D method designed for Visual
Basic users: CopyArrayData. This method takes a
Visual Basic array as an argument and plots the array
data.
- A problem has been fixed where a file created via
faglSaveAsFile (aglSaveAsFile) would be unreadable
until the process that called the routine had
exited.
Compaq Visual Fortran Version 6.5 Release Notes 1-71

o Version 1.0A release::
- In the 1.0 release, some users experienced long load
times and excessive memory usage when starting the
Array Viewer (this only occurred when the display was
set to true color mode). This problem has been fixed
for this release.
- The Array Viewer about box now displays more system
information. When reporting a problem, please copy
and paste the contents of the about box into your
problem report.
- In Array Viewer you can now copy a bitmap of the
Graph View to the Windows clipboard. See the Array
Viewer online help for more information.
- There's a new command line utility, agltohdf that can
be used to convert agl files to the hdf format.
- The Array Visualizer documentation now covers the fav
routines (Fortran) and CAViewer class (C++). These
functions can be used when you want more control over
how the Array Viewer displays the array data. For
example, you can set the graph type programatically.
1.10.3 Using the Fortran Array Visualizer from the Debugger
The Visual Fortran Professional Edition Debugger supports
new functionality which allows the programmer to view
arrays using the Visual Fortran (Developer Studio) Array
Visualizer. This functionality is made available through a
new Visual Studio docking window named the Fortran Arrays
window.
The Fortran Arrays window is available when the program
is at a breakpoint in a Fortran source file. The Fortran
Arrays window can be displayed using 1 of 3 methods:
1. Place your cursor on, or select, the name of a Fortran
array in the source window and select the Array
Visualizer icon in the Fortran toolbar.
2. Place your cursor on, or select, the name of a Fortran
array in the source window and select the Fortran Array
Visualizer item from the Debug item.
1-72 Compaq Visual Fortran Version 6.5 Release Notes

3. Select Debug Windows -> Fortran Arrays from the view
menu.
The Fortran Arrays window consists of 2 panes. The left
pane contains the names of Fortran arrays. The right pane
contains the current viewing status of each array. Each row
in the Fortran Arrays window is associated with an instance
of the Array Visualizer application.
Methods 1 and 2 above add a new row to the Fortran Arrays
window and attempt to launch an Array Visualizer to
view the array. While the Array Visualizer is starting,
the status pane displays "Working...". Once the Array
Visualizer has displayed the array, the status changes
to "Viewing...". If the array cannot be viewed, for example
because the name entered is not the name of a Fortran array
of intrinsic numeric data, an error message is displayed in
the status pane.
Unlike the data displayed in other Debug windows, arrays
listed in the Fortran Arrays window are not automatically
updated at each breakpoint. This is because viewing an
array can be a time consuming operation.
You may use the following mouse and keyboard actions in
the Fortran Arrays window to manipulate the arrays in the
Fortran Arrays window.
o Left mouse button click on an array name selects the
array.
o Left mouse button double click sends updated array data
to the Array Visualizer.
o After selecting one or more arrays, pressing the Delete
key closes the Array Visualizers associated with the
selected arrays, and removes the names from the Fortran
Arrays window.
o After selecting one or more arrays, pressing the Escape
key detaches the Array Visualizers associated with
the selected arrays, and removes the names from the
Fortran Arrays window. Detached Array Visualizers remain
displayed but are no longer under the control of the
visual Debugger.
Compaq Visual Fortran Version 6.5 Release Notes 1-73

o Left mouse button click on a selected array, or pressing
the Enter key after selecting an array, places the array
name into edit mode. Editing is completed when the Enter
key is pressed or the mouse is clicked outside of the
editing window. If you delete the array name, then the
Array Visualizer associated with the array is closed and
the name is remove from the Fortran Arrays window. If
you change the name to a different name, then the Array
Visualizer associated with the array is used to view the
data of the array with the new name.
When the Fortran Array window is closed, either by explicit
user action, or when the debugging session ends, all Array
Visualizer windows are closed (except for Array Visualizers
which have been previously detached).
The following limitations exist in the Fortran Arrays
window:
o When viewing Fortran assumed-size arrays, the last
dimension of the array is not viewable.
o When viewing Fortran assumed-shape arrays, the lower
bounds are always represented at 1 by default. To change
the lower bound used by the Visualizer, open the ROI
Settings dialog (Settings->ROI in the Visualizer menu),
and modify the value(s) displayed in the LowerBound
Column.
1.10.4 The Fortran Array Visualizer Uses HDF Libraries
HDF (Hierarchical Data Format) is a library and platform
independent data format for the storage and exchange
of scientific data. HDF was developed by the NCSA which
provides information, updates, and library support for
many different platforms (including Compaq Tru64 Unix and
OpenVMS) at their web site: http://hdf.ncsa.uiuc.edu.
Use of these binary libraries in the Fortran Array
Visualizer requires the following notice:
Copyright Notice and Statement for NCSA Hierarchical Data Format
(HDF) Software Library and Utilities
Copyright 1988-1999 The Board of Trustees of the University of Illinois
All rights reserved.
1-74 Compaq Visual Fortran Version 6.5 Release Notes

Contributors: National Center for Supercomputing Applications (NCSA)
at the University of Illinois, Fortner Software, Unidata Program Center
(netCDF), The Independent JPEG Group (JPEG), Jean-loup Gailly and Mark
Adler (gzip), and Digital Equipment Corporation (DEC).
Redistribution and use in source and binary forms, with or without
modification, are permitted for any purpose (including commercial
purposes) provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions, and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions, and the following disclaimer in
the documentation and/or materials provided with the distribution.
3. In addition, redistributions of modified forms of the source or
binary code must carry prominent notices stating that the original
code was changed and the date of the change.
4. All publications or advertising materials mentioning features or
use of this software must acknowledge that it was developed by the
National Center for Supercomputing Applications at the University
of Illinois, and credit the Contributors.
5. Neither the name of the University nor the names of the Contributors
may be used to endorse or promote products derived from this
software without specific prior written permission from the
University or the Contributors.
DISCLAIMER
THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY AND THE CONTRIBUTORS
"AS IS" WITH NO WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED.
In no event shall the University or the Contributors be liable for
any damages suffered by the users arising out of the use of this
software, even if advised of the possibility of such damage.
1.11 Fortran Format Editor Release Notes
o The Format Editor does not support "Variable Format
Expressions".
o The Format Editor does not support "Repeat
Specifications" greater than 99.
Compaq Visual Fortran Version 6.5 Release Notes 1-75

o Repeatable edit descriptors can be specified without
a field width value. Since the Format Editor does not
know the attributes of the Fortran data that will be
associated with the edit descriptor at run-time, it uses
a default field width based upon the type of the edit
descriptor. The following table lists the repeatable
edit descriptors and the default field width used by the
Format Editor for displaying the sample field data.
________________________________________________________
Edit
Descriptor______Default_Width___________________________
A 10
I 7
L 2
B 8
O 7
Z 8
F 15
D 15
E 15
G 15
EN 15
ES______________15______________________________________
1.12 Debugging Related Release Notes
The following changes have been made to the debug support
for V6.1A since V6.1 shipped:
o Attempting to view a host associated array whose bounds
are based on parameters, e.g. variable 'problem' in the
following code:
1-76 Compaq Visual Fortran Version 6.5 Release Notes

subroutine foo(i1,i2)
integer i1(:), i2(:)
integer problem(size(i1),size(i2))
.
.
contains
subroutine bar()
.
i3 = problem+1 ! break set here, request 'problem' in
! watch window
.
.
.
previously caused Developer Studio to crash. This crash
no longer occurs. Note that the following restriction
does currently exist: such a variable ('problem' in the
above example) cannot be viewed from within an internal
subroutine (e.g. 'bar' above).
o The debugger would previously not display host
associated variables that were also dummy arguments
in the containing routine. This has been fixed.
o In previous versions of the product, format specifiers
had no effect on character variables in watch windows.
For example, trying to see a character variable 'ch'
in octal by typing "ch,o" in a watch window, had no
effect. Support has been added in this release for using
'o', and 'd'/'i' format specifiers to watch character
variables.
o There was a bug in previous versions that made it
impossible to watch an array section where the array
is a member of a derived type, such as:
type str
integer, pointer :: f(:,:)
end type str
type (str), pointer :: a(:)
allocate (a(3))
allocate (a(1)%f(10,1))
a(1)%f(:,1) = (/1,2,3,4,5,6,7,8,9,10/)
write(*,*)a(1)%f ! Previously not possible to watch
! a(1)%f(:,:)
Compaq Visual Fortran Version 6.5 Release Notes 1-77

This bug has been fixed.
o If the cursor was placed over a multi-byte character
in a debugging session with previous versions of CVF,
Developer's Studio would hang. This has been fixed.
The following changes have been made to the debug support
for T6.2 beta 1 since V6.1A shipped:
o A minor bug which sometimes caused incorrect display
of a character variable with the 'o' (octal) format
specifier has been fixed.
o Attempting to invoke the Array Visualizer from within
the debugger specifying a non-contiguous array is now
correctly diagnosed as an error.
The following change has been made to the debug support for
Version 6.5 since T6.2 beta 2 shipped:
o Non-floating-point variables may be viewed as floating-
point values in a watch window using the 'f', 'g', or
'e' format specifiers.
Known problems with the current support:
o The return value for complex-valued functions does not
display properly if the function has alternate entry
points.
o If a user defined type is declared in a module and
contains a pointer to an entity of the same user defined
type (as in a linked list), the pointer cannot currently
be seen from within the debugger.
1-78 Compaq Visual Fortran Version 6.5 Release Notes