You are on page 1of 148

____________________________________________________

Compaq Visual Fortran Release Notes


August 2001
This document contains information about Compaq
Visual Fortran from Versions 6.0 through 6.6.

Software Version:

Compaq Computer Corporation


Houston, Texas

Compaq Visual Fortran


Version 6.6

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

________________________________________________________________
2001 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.
All other product names mentioned herein may be trademarks
of their respective companies.
Confidential computer software. Valid license from Compaq
required for possession, use or copying. Consistent with
FAR 12.211 and 12.212, Commercial Computer Software,
Computer Software Documentation, and Technical Data for
Commercial Items are licensed to the U.S. Government under
vendor's standard commercial license.
Compaq shall not be liable for technical or editorial
errors or omissions contained herein. The information
in this document is provided "as is" without warranty
of any kind and is subject to change without notice. The
warranties for Compaq products are set forth in the express
limited warranty statements accompanying such products.
Nothing herein should be construed as constituting an
additional warranty.
Major changes since Version 6.5A are indicated in blue
color in HTML output and by change bars in the margin in
the plain ASCII TXT output.
This document was prepared using DECdocument, Version 3.31n.

_________________________________________________________________
Contents

1 Introduction
1.1
1.2
1.3

Conventions...................................
Overview......................................
General Information...........................

1-2
1-2
1-2

2 Installation Notes
2.1
2.2
2.3

Version 6.6 Installation Notes................


Installation Changes for Version 6.5 to
Typical Installation..........................
Installation Notes Related to Online
Documentation.................................

2-1
2-3
2-4

3 Version 6 News
3.1
3.2
3.3
3.3.1
3.3.2
3.3.3
3.4

Version 6.6 News..............................


Version 6.6 Known Problems....................
Version 6 News................................
Version 6.5 and 6.5A News.................
Version 6.1A and 6.1 News.................
Version 6.0 News..........................
Version 6 Notes and Supplemental
Information...................................

3-1
3-3
3-4
3-5
3-10
3-15
3-20

4 Visual Fortran Compiler Release Notes


4.1
4.2
4.3
4.4
4.5

New Features and Changes for Version 6.6......


New Features and Changes for Version 6.5A.....
New Features and Changes for Version 6.5......
New Features and Changes for Version 6.1A.....
Features of Microsoft Fortran PowerStation Not
Supported.....................................

4-1
4-6
4-11
4-17
4-21
iii

5 Visual Fortran RTL Release Notes


5.1
5.2
5.3
5.4
5.5
5.6

New Features and Changes for Version 6.6......


Restrictions and Known Problems...............
New Features and Changes for Version 6.5A.....
New Features and Changes for Version 6.5......
New Features and Changes for Version 6.1A.....
Run-Time Differences Between Visual Fortran
and Microsoft Fortran PowerStation............

5-1
5-6
5-7
5-9
5-14
5-18

6 Developer Studio Release Notes


6.1
6.2
6.3
6.4
6.5
6.6

New Features and Changes for Version 6.6......


Known Problems, Troubleshooting, and
Limitations...................................
New Features and Changes for Version 6.5A.....
New Features and Changes for Version 6.5......
New Features and Changes for Version 6.1A.....
New Features and Changes for Version 6.1 and
6.0...........................................

6-1
6-2
6-6
6-7
6-9
6-9

7 Visual Fortran Documentation Release Notes for Version


6
7.1
7.2
7.3
7.4

Version 6.6 Documentation Changes.............


Version 6.5 and 6.5A Documentation Changes....
Version 6.1 Documentation Changes.............
PDF Files, HTML Files, and Samples............

7-1
7-2
7-2
7-4

8 Debugging Related Release Notes


8.1
8.2
8.3
8.4

iv

Changes Made to Version 6.6...................


Restrictions and Known Problems...............
New Features and Changes Made to Version 6.5
and 6.5A......................................
New Features and Changes Made to Version
6.1A..........................................

8-1
8-1
8-2
8-2

9 Compaq Extended Math Library (CXML) Release Notes


9.1
9.2

Installing and Using CXML.....................


CXML New Features.............................

9-2
9-2

10 Compaq Array Visualizer Release Notes


10.1 New Features and Changes for Version 1.6...... 10-1
10.2 Array Visualizer Known Problems and
Limitations................................... 10-2
10.3 New Features and Changes for Versions 1.5A and
1.5........................................... 10-2
10.4 New Features and Changes for Versions 1.1A,
1.1, and 1.0.................................. 10-4
10.5 Compaq Array Visualizer Overview and
Description of Features....................... 10-6
10.6 Using the Fortran Array Visualizer from the
Debugger...................................... 10-8
10.7 The Fortran Array Visualizer Uses HDF
Libraries..................................... 10-11
11 Fortran Format Editor Release Notes

1
_________________________________________________________________
Introduction
Thank you for choosing Compaq Visual Fortran. This document
provides release notes for Compaq Visual Fortran Version
6.6. It also provides key information for earlier releases
since Version 6.0.
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 Compaq 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
It is important that you register your purchase of
Compaq Visual Fortran (Visual Fortran) and also keep your
registration information (such as your e-mail address) upto-date. Registration entitles you to exclusive benefits,
such as the Visual Fortran Newsletter, and provides a
record of your serial number should you misplace it.
Concurrent license users need to perform a separate
registration to obtain the license key, but concurrent
license users (like other users) should also register their
Visual Fortran purchase. Use the following Internet URL:
http://www.compaq.com/fortran/register

Introduction 1-1

1.1 Conventions
In these release notes:
o Compaq Visual Fortran is often abbreviated as "VF" or
"CVF".
o Compaq Array Visualizer is often abbreviated as "AV" or
"CAV".
1.2 Overview
These release notes describe Compaq Visual Fortran Version
6.6 and previous releases back to Version 6.0:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

o VF v6.6 updates VF v6.5A (which replaced v6.5). There


are no released versions of VF numbered 6.2, 6.3, or
6.4.
o VF v6.6 contains Array Visualizer v1.6, which replaces
Array Visualizer v1.5A (which replaced v1.5). There are
no released versions of Array Visualizer numbered 1.2,
1.3, or 1.4.
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.
o Alpha users should be aware that support for Windows NT
Alpha systems ended as of December 31, 2000. Releases of
Visual Fortran after Version 6.5A will no longer support
Windows NT Alpha systems.
1.3 General Information

|
|
|
|

Compaq Visual Fortran Version 6.6 is an enhancement of VF


v6.5, the current shipping product for Intel/Win32 (x86
systems), and includes patches for problems fixed since VF
v6.5A shipped.
1-2 Introduction

VF v6.6 updates the Compaq Fortran 95/90 compiler, run-time


library, certain Microsoft Developer Studio IDE pieces,
certain updates to applicable parts of Microsoft Developer
Studio, the Compaq Extended Math Library (CXML), the Array
Visualizer, and VF documentation.
VF 6.6 does not provide complete service updates for
Microsoft Developer Studio. As of v6.6, the Compaq Fortran
Companion Products CD-ROM will no longer be available,
but VF 6.6 does provide f90SQL-Lite from Canaima Software
(optionally installed). VF 6.6 updates the IMSL libraries
that ship with the Professional Edition.

|
|
|
|
|
|
|
|
|
|
|
|

Compaq Visual Fortran v6.6 is available in two separate


products:
o Compaq Visual Fortran Standard Edition
The VF Standard Edition contains the following
components to support Intel processors running
Windows/NT (including Windows 2000) or Windows 9*:
- VF compiler
- Libraries
- 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)
- Developer Studio
o Compaq Visual Fortran Professional Edition
The VF Professional Edition contains all the Standard
Edition features (VF compiler, libraries, CXML, and
Developer Studio) plus the following:
- IMSL mathematics and statistical libraries
- Compaq Array Visualizer Version 1.6
- Fortran COM Server Wizard
This product requires that you be running Windows 2000,
Windows NT Version 4.0 with Service Pack 3, Windows Me,
Windows 98, or Windows 95.
Introduction 1-3

|
|
|
|
|
|
|
|
|
|
|

On Windows NT systems, Service Pack 3


by the Visual Fortran installation if
documentation also requires Microsoft
which will be installed by the Visual
if required (see Section 2.3).
|
|
|
|
|

will be installed
required. VF online
Internet Explorer V4,
Fortran installation

VF v6.6 contains Microsoft Developer Studio 98 (Developer


Studio v6.0) and is not compatible with the Developer
Studio on VF v5.0A (Standard and Professional) and
Microsoft Visual C++ v5.0. VF v6.6 can co-exist on the
same system with Developer Studio V5 products.
VF v6.6 contains bug fixes, performance improvements,
extensions to improve compatibility with Microsoft Fortran
PowerStation, and additional minor features.

|
|
|

One important new feature in v6.6 is support for 64-bit


integer data {INTEGER (KIND=8) and LOGICAL (KIND=8)} (new
features are described in Chapter 3).

1-4 Introduction

2
_________________________________________________________________
Installation Notes
This chapter presents important points to consider and
actions to take to ensure a successful installation of
Compaq Visual Fortran:
o Section 2.1, Version 6.6 Installation Notes
o Section 2.2, Installation Changes for Version 6.5 to
Typical Installation
o Section 2.3, Installation Notes Related to Online
Documentation
2.1 Version 6.6 Installation Notes
The v6.6 installation procedure is the same as for v6.5.
Please refer to the Compaq Fortran Installing and Getting
Started guide for installation instructions (see the
printed book or online file Cvf_gs.pdf).
The following installation notes apply to the current
version of Visual Fortran:
o If you attempt to install Visual Fortran v6.* using
any of the methods described in "Installing and Getting
Started - Using Setup to Install Visual Fortran", and
SETUP.EXE in the root directory fails to run, on x86
systems, run: \X86\SETUPX86.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:
Installation Notes 2-1

|
|
|
|

Cannot load package 'xxxxxx' because its internal version nu


mber,
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.
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
2-2 Installation Notes

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"
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.
2.2 Installation Changes for Version 6.5 to Typical Installation
The following installation change occurred in Version 6.5:
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.

Installation Notes 2-3

2.3 Installation Notes Related to Online Documentation


The following installation notes apply to installing the
HTML Help online documentation:
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 x86 systems, from the Visual Fortran 6.6 CD-ROM,
run: \X86\SUPPORT\IE4\{WINNT | WIN95\IE4SETUP.EXE
If you install Internet Explorer later, you will also
need to reinstall Visual Fortran to view the HTML Help
Viewer online documentation.
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 Initial index use and disk space requirements for HTML
Help Viewer
2-4 Installation Notes

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 privilege 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.
5. Click OK. The collection you just selected is now
your current collection.
Installation Notes 2-5

Regardless of the collection currently selected, you


can display the Visual Fortran HTML Help by selecting
"Online documentation" in the Visual Fortran program
folder.

2-6 Installation Notes

3
_________________________________________________________________
Version 6 News
This chapter describes Version 6.6 news, notes, and known
problems. It also provides news for previous releases and
supplemental notes.
o Section 3.1, Version 6.6 News
o Section 3.2, Version 6.6 Known Problems
o Section 3.3, Version 6 News
o Section 3.4, Version 6 Notes and Supplemental
Information
3.1 Version 6.6 News
The following are new and changed features for v6.6:
o
o

o
o

|
|
INTEGER (KIND=8) and LOGICAL (KIND=8) are now recognized |
to support 64-bit signed integers.
|
|
When the /fast command line option is present, if any
|
of the forms of /stand are present, /fast will not set
|
/align=dcommons and /align=sequence.
|
|
The command line option /stand now defaults to F95 not
|
F90.
|
|
New compiler option keyword /fpscomp:[no]ldio_spacing
|
|
The Fortran 95 Standard requires that there be a blank
|
after a numeric value before a character value in list- |
directed output. Microsoft PowerStation did not do
|
this; nor did VF v6.5A. As of v6.6, VF will obey the
|
F95 Standard by default {/FPSCOMP:NOLDIO_SPACING}. If
|
/FPSCOMP:LDIO_SPACING is specified, VF will produce
|
the old, non-standard output. /FPSCOMP:GENERAL will set |
/FPSCOMP:LDIO_SPACING.
|
Version 6 News 3-1

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

o New compiler option /annotations:keyword adds


information about the optimizations performed when you
request a listing file.
o New compiler option /integer_size now supports a value
of 64 to allow INTEGER and LOGICAL (default kind)
declarations to be treated as 8 bytes long (KIND=8).
o The compiler option /ccdefault:default now allows other
options, such as /vms, to set the default carriage
control.
o There are new versions of the module header files
DFWINTY.F90 and DFWIN.F90 (and its component files).
These new module headers are designed to work in both
the 32-bit and 64-bit environments (see Section 5.1).
o A new version of the Compaq Extended Math Library
(CXML) is included with Visual Fortran Version 6.6, CXML
Version 5.0. For detailed information, see Chapter 9.
o The types of Visual Fortran run-time libraries displayed
in the visual development environment Fortran tab
(Project menu, Settings dialog box) more closely
match the run-time libraries available in Visual C++
(C/C++ tab). Also, the types of run-time libraries
linked against while linking against debug versions
of DLL libraries have changed, as described in online
Programmer's Guide, Mixed-Language Programming chapter
section Visual Fortran/Visual C++ Mixed-Language
Programs.
o The following new graphics functions let you draw
Bezier curves (based on fitting a cubic curve to four
points): POLYBEZIER and POLYBEZIER_W, POLYBEZIERTO and
POLYBEZIERTO_W
o The intrinsics COUNT and ZEXT have been extended to
accept an optional KIND argument to specify the kind
type parameter of the result.
o The /arch:xxx and /tune:xxx command line options now
accept the following new keywords for "xxx":
- PN1 is the same as the old P5 keyword
- PN2 is the same as the old P6 keyword
- PN3 is the same as the old P6P keyword
3-2 Version 6 News

- PN4 is the same as the new P7 keyword

|
|
VF still accepts the old spellings of the keywords for
|
"xxx".
|
|
o A derived-type variable which is data initialized via
|
default initialization of any of its components will no |
longer be saved by default. A RECORD variable which is
|
data initialized via default initialization specified
|
in its STRUCTURE declaration will no longer be saved by |
default.
|
|
o fpp supports the macros __DATE__ and __FILE__. When
|
fpp is told to expand macros using "-fpp:-m", these
|
expand into character literals that give the name of the |
source file being processed and the current date/time
|
respectively.
|
|
character*20 file
|
character*20 date
|
file = __FILE__
|
date = __DATE__
|
type *, file, date
|
end
|
|
Do not put __DATE__ or __FILE__ inside quotes in the
|
source.
|
|
3.2 Version 6.6 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 Control-C event, the
|
operating system will create a new thread to execute the |
handler 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
|
Version 6 News 3-3

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

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.
3.3 Version 6 News
This section describes news and notes for previous
releases, from Versions 6.0 through 6.5A:
o Section 3.3.1, Version 6.5 and 6.5A News
o Section 3.3.2, Version 6.1A and 6.1 News
o Section 3.3.3, Version 6.0 News

3-4 Version 6 News

3.3.1 Version 6.5 and 6.5A News

|
|
Version 6.5A news:
|
|
o The "unused" variable message is informational, not a
|
warning, as of 6.5A.
|
|
o The Fortran COM Server Wizard now allows you to select
|
an out-of-process (.EXE) COM server. Users now have a
|
choice of the type of server: either a DLL (in-process) |
COM server or an EXE (out-of-process) COM server.
|
|
o New compiler options and their descriptions:
|
|
- /assume:[no]protect_constants
|
|
This option specifies whether constant actual
|
arguments can be changed. By default, actual
|
arguments that are constants are read-only
|
(/assume:protect_constants). To allow changes
|
to actual arguments that are constants, specify
|
/assume:noprotect_constants.
|
|
- /check:[no]arg_temp_created
|
|
Requests that a run-time informational message appear |
if actual arguments are copied into temporary storage |
before routine calls. Specifying /check:noarg_temp_
|
created (the default) does not generate the extra
|
code needed to display a message run-time when this
|
condition occurs.
|
|
- /warn:[no]ignore_loc
|
|
Requests that the compiler issues warnings when
|
%LOC is stripped from an argument. The default is
|
/warn:noignore_loc (does not issue a warning for this |
condition).
|
|
o The hardware selected by the /ARCH command line option
|
is the basis for the /TUNE option, i.e., you cannot use |
/TUNE to tune generated code for an architecture older
|
than the one selected by /ARCH.
|
|
o New data ATTRIBUTES directive keywords are now
|
available:
|
|
ALLOW_NULL, DECORATE, IGNORE_LOC, and NOMIXED_STR_LEN_
|
ARG
|
Version 6 News 3-5

|
|
|
|
|
|
|
|
|
|
|
|
|
|

o VF Reporter running on the Windows Me operating system


will display errors but will run. The initial error
message displayed is:
The file named "C:\Program Files\Microsoft
Visual Studio\DF98\VFRPORTR\DFWHAT.TXT"
THAT SHOULD HAVE BEEN CREATED BY:
The second error displayed is:
The file named "C:\Program Files\Microsoft Visual
Studio\DF98\VFRPORTR\GLINFO.TXT" THAT SHOULD HAVE BEEN
CREATED BY "C:\Program Files\Microsoft
Visual Studio\DF98\BIN\df.exe /what > dfwhat.txt" was not fou

nd
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

The error occurs because Windows Me doesn't support


Autoexec.bat where VF traditionally sets the environment
variables for that family of Windows operating systems.
A version of VF Reporter that fixes this
problem will be available from the VF web page:
http://www.compaq.com/fortran
o For details about changes for Version 6.5A, see the
following sections. For example:
- For a list of compiler changes, see Chapter 4, Visual
Fortran Compiler Release Notes.
- For a list of run-time library changes, see
Chapter 5, Visual Fortran RTL Release Notes.
- For a list of Developer Studio changes, see
Chapter 6, Developer Studio Release Notes.
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 or later in order to
work properly.
______________________________________________________
o VF v6.5 introduces the Fortran COM Server Wizard.

3-6 Version 6 News

The Fortran COM Server 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 v6.5 wizard creates inprocess servers (or EXE servers starting with v6.5A)
|
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 can now generate optimized code for the Intel Pentium
III, AMD K6, and AMD Athlon {K7} architectures.
|
|
o VF v6.5 now supports concurrent-use licenses. Use of
|
a concurrent-use license uses a third-party license
|
management product called FlexLM to manage the
|
concurrent-use license use. 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.
|
o New COM routines provided are COMStringFromGUID and
COMIsEqualGUID.
Version 6 News 3-7

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
3-8 Version 6 News

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
For a resolution to this problem, see the following
Knowledge Base article on the Visual Fortran web site:
http://www.compaq.com/fortran/kb/q1036.html

Version 6 News 3-9

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 (Alpha) 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.
3.3.2 Version 6.1A and 6.1 News
The following Version 6.1A and 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 webdownloadable patch kit soon after VF v6.1 ships.
o NO_ARG_CHECK attribute
3-10 Version 6 News

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
compiler and FPP)

Because this is Win32

-D_MT=1

If compiling threaded

-D_X86_=1 (both compiler If Intel


and FPP)
-D_WIN95=1

If Windows 95

-D_WIN98=1

If Windows 98

-D_ALPHA_=1 (both
compiler and FPP)

If Alpha

-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
Version 6 News 3-11

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.
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
3-12 Version 6 News

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.
* 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

Version 6 News 3-13

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
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.
3-14 Version 6 News

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
the applicable updated files from the Microsoft Visual
Studio 6.0 Service Pack 2.
3.3.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.
Version 6 News 3-15

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.
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.
3-16 Version 6 News

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 Endof-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.
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 Windows 9*, 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.
Version 6 News 3-17

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
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+REFERSTDCALL+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.
3-18 Version 6 News

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.
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.
Version 6 News 3-19

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.
- 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".
3.4 Version 6 Notes and Supplemental Information
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 occurrences of a given string
with another string.

3-20 Version 6 News

_________________________________________________________________
...\Support
Directory___________Description__________________________________
\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.

\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.
Version 6 News 3-21

o To allow you to read the Compaq Visual Fortran


Installing and Getting Started guide before (or during)
installation, the Installing and 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 4.0, 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.
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
3-22 Version 6 News

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.
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 does not
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.
Version 6 News 3-23

4
_________________________________________________________________
Visual Fortran Compiler Release Notes
This chapter provides the following details about changes
to the Compaq Fortran compiler:
o Section 4.1, New Features and Changes for Version 6.6
o Section 4.2, New Features and Changes for Version 6.5A
o Section 4.3, New Features and Changes for Version 6.5
o Section 4.4, New Features and Changes for Version 6.1A
o Section 4.5, Features of Microsoft Fortran PowerStation
Not Supported
4.1 New Features and Changes for Version 6.6

|
|
The following changes have been made to the Compaq Fortran |
compiler for VF v6.6 since VF v6.5A shipped:
|
|
o The following changes have been made to the compiler
|
{from V6.6-1657-47B5I to V6.6-1684-47B6E}:
|
|
- Do NOT evaluate the argument to any numeric inquiry
|
function (like HUGE). The evaluation may kill the
|
stack (for a large array argument, even without a
|
function call). CVF14579.
|
|
- Make actual argument which is a function returning a |
scalar pointer work correctly. CVF14525.
|
|
- BOZ constants are allowed for integer initialization. |
|
- Fix access to module from path specified on command
|
line.
|
|
- Array passing optimization was not working correctly |
for assumed-shape arrays being passed as explicit
|
arrays.
|
Visual Fortran Compiler Release Notes 4-1

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

o The following changes have been made to the compiler


{from T6.6-1567-47B4D to V6.6-1657-47B5I}:
- Improve the algorithm for ILEN to get better code.
- Treat use of undefined compile time variable in
expression as integer with value 0. Do not diagnose.
- Propagate 'only' and 'rename' info of module to
contained procedure.
- Get debugging information put out at all
(appropriate) ENTRY points. In particular, put out
prolog code for dynamic array bounds for array dummy
arguments and for f90 automatic arrays.
- Handle generic defined operator, merging specifics
from multiple modules; honoring 'only' defined
operator.
- Handle VAX structures like F90 defined types.
- Output a warning if a case selection element is too
big to fit in the maximum integer.
- Fix /fast vs /align and /assume used together.
- Fix bug in WHERE in FORALL where WHERE mask contains
a call to an elemental function.
- Initialized records need to be re-initialized at
every entry point.
- Fix generated code for optional arguments to
SELECTED_REAL_KIND.
- Allow '.' as well as '%' as field separator.
- Recognize match between actual 'procedure' argument
with pointer attribute and dummy 'procedure' argument
with pointer attribute.
- Accept VAX scalar field name reference (x.y) where
x currently known as parameter object of structure
type.
- Accept allocatable components as arguments of
ALLOCATED intrinsic.
- When accepting/rejecting common data, do not forget
to handle data equivalenced to common.

4-2 Visual Fortran Compiler Release Notes

- Recognize renamed generic in 'use' where there also


is an 'only' clause.

|
|
|
- Handle use of a contained function in bounds
|
expression of following procedure.
|
|
- Fix bug in the NT driver where it would accvio if
|
a MS-style qualifier that required a value was put
|
at the end of a line, and did not have its required
|
value.
|
|
- Update intrinsic functions COUNT and ZEXT to allow
|
optional 'KIND' argument.
|
|
- Get the debug locator correct for all ENTRY SYMBOLs. |
|
- Inhibit release of warning: 'Symbol in block data
|
program unit is not in a COMMON block' if the symbol |
has a 'use'. To allow use in implied do of data
|
initialization. If other use , earlier diagnostic
|
would have been issued.
|
|
- For CVF 6.6 and later, always look for a FLEXlm
|
license.
|
|
o The following changes have been made to the compiler
|
{from T6.6-1495-47B38 to T6.6-1567-47B4D}:
|
|
- Make sure that type associated with function result
|
gets added to list for export.
|
|
- Fix problem with importing generic symbol.
|
|
- Fix problem with importing common symbol which is
|
renamed.
|
|
- Implement correct ALIGN=xx values; support ALIGN=PAGE |
on all platforms (which is new) and set the alignment |
to whatever a "page" means on that platform.
|
|
- Generate better debug information for dummy arguments |
which are subroutines or functions.
|
|
- Do the right thing on Intel if number_of_processors
|
is being stored to an integer*8.
|
|
- If /integer_size:64 is set, the conditional
|
compilation code would generate errors saying
|
"invalid conditional compilation expression".
|
Visual Fortran Compiler Release Notes 4-3

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

- Collect ALL generic entries for a name from the set


generated during import. Multiple modules may validly
contain generic specifications for a single symbol.
- Process /fpscomp options general and ldio_spacing in
a left-to-right order. CVF13939
- Fix SIZE(A,DIM) where DIM is an optional argument.
CVF11111
- Exclude test for subroutines when issuing implicit
declaration warnings in response to !DEC$ declare
directive
- Correctly report when an incorrect number of
arguments has been detected in a structure
constructor.
- Allow MAX and MIN to have optional arguments.
CVF11111
- Optimize module importing when 'use' occurs within
interface blocks.
- In the NT driver, pass along -annotations:keyword
to the compiler. Also, if the debug C libraries are
specified (either with /dbglibs or /MxD) link against
the corresponding debug Fortran libraries.
- Repair handling of old form of DEC alias directive.
- Fix problem with calling KISHFTC on Intel.
- After verifying legality of octal constant as
argument, attach type to argument and to underlying
constant.
- Inhibit diagnostic for implicitly typed forward
reference of a variable which is subsequently
explicitly typed: character*(n+1) function s(n)
!forward ref of n integer, intent(in) :: n
- In the NT driver, recognize if we're running on
Windows ME and set -D_WINME if so.
- Fix /assume:dummy_aliases to the conflicts with other
parameters, variables in COMMON and in MODULES, and
pointers/allocatables in COMMON/MODULES.
4-4 Visual Fortran Compiler Release Notes

- On Intel, limit the size of the array bounds at


declaration time to 'fit' within a 32-bit integer.
Output an error if either the upper or lower bound
exceeds that size.

|
|
|
|
|
- Mark the array descriptor for an explicitly shaped
|
array function result as quadword aligned.
|
|
o The following changes have been made to the compiler
|
{from V6.5-1332-44ACE to T6.6-1495-47B38}:
|
|
- Make /STANDARD (-stand) mean F95, not F90.
|
|
- When merging specific procedure lists from different |
modules, allow multiple definitions for generics.
|
|
- Recognize /fpscomp:libs in compiler for *_WNT
|
environments.
|
|
- Diagnose missing intent attributes on pure
|
(explicitly or implicitly if elemental) subroutine
|
arguments which are neither pointers nor procedures. |
|
- Support INTEGER(KIND=8) and LOGICAL(KIND=8) as 64-bit |
signed integers.
|
|
- Diagnose mask expressions with incompatible shapes in |
where constructs and contained where/elsewheres.
|
|
- Impose standard restriction that defined-operator
|
names consist only of letters.
|
|
- Allow /fpscomp:[no]ldio_spacing.
|
|
- When /fpscomp:general is specified. set
|
/fpscomp:ldio_spacing. (CVF13066)
|
|
- /warn:trucated_source must be set even if /stand:f95 |
is to get "truncated source" message.
|
|
- Do not loose place in source stream when see zero|
padded-integer.
|
|
- Repair another field-dot problem in defined
|
operators.
|
|
- For COMPLEX*16 results, special case CCOS, CEXP,
|
CLOG, CSIN, CSQRT to be type of arg; similarly for
|
REAL*8 and ALOG, ALOG10.
|
Visual Fortran Compiler Release Notes 4-5

|
|
|
|
|
|
|
|
|
|

- Fix inquire with IOLENGTH=FIELD%NAME or array


element.
- Repair several module errors with ONLY, RENAMEs, and
deep nesting.
- Do not diagnose fields of private types as
inaccessible within the defining module, just outside
the module.
4.2 New Features and Changes for Version 6.5A
The following changes have been made to the Compaq Fortran
compiler for VF v6.5A since VF v6.5 shipped:
o The following changes have been made to the compiler
{from V6.5-1096-44A6D to V6.5-1332-44ACE}:
- Prevent incorrect collapsing of implied-DO loop in
an I/O statement where there are nested loops and the
implied-DO variable of one loop is used as a bound of
an inner loop.
- When the error limit has been exceeded (default 30),
simply suppress further messages rather than exiting
the compiler. This means that the object file will
get deleted appropriately, the listing and diagnostic
(VMS) files created, and subsequent source files on
the command line will be processed.
- Re-allow complex constants to be passed by value.
The real and imaginary parts are passed as separate
arguments.
- Allow character array valued function as a format
specifier.
- Allow debugging of a character function whose length
is computed based on the length of a passed-length
character argument.
- Eliminate internal compiler error for character
function whose length expression includes LEN_TRIM
of a dummy argument.
- Eliminate internal compiler error for SIZE of a
derived type component pointer array.
4-6 Visual Fortran Compiler Release Notes

- Eliminate more unnecessary copies of contiguous array


arguments.
- Speed up processing of EQUIVALENCE groups in COMMON
blocks.
- Properly handle SIZE(A(:)(I:J))
- Implement INT8 intrinsic (already documented) - UNIX)
- Allow omitted OPTIONAL arguments to be passed as
optional arguments to intrinsics.
- If "too many errors", suppress informational/warning
messages as well.
- Allow keyword specification of arguments A10, A20,
etc. to MAX/MIN.
- Eliminate internal compiler error for case of ADJUSTL
with array argument.
- Where DATA initializations initialize the same array
element (not allowed according to the standard, but
supported by Compaq Fortran), preserve the order in
which initializations were specified, so that the
last one takes precedence.
- Support the full range of format width specifiers as
documented.
- Improve detection of contiguous array slices.
- Correct support for SIZE with argument being array
with vector subscripts.
- Eliminate internal compiler error for initialization
expression which contains a constant expression in a
structure constructor.
- Allow EXTERNAL :: FOO
- Correct parsing error for certain record component
references using dots.
- Eliminate internal compiler error for particular use
of RESHAPE.
- Do not give an unused variable warning where the only
reference to a variable is as the argument to LOC.

Visual Fortran Compiler Release Notes 4-7

- Eliminate internal compiler error for particular use


of nested STRUCTURE.
- Disallow illegal ALLOCATED(A(:))
- Allow, as an extension for compatibility with our
Fortran 77 compilers, a LOGICAL value as an argument
to intrinsics which accept INTEGER, such as ABS.
- Diagnose ambiguous generic routine reference.
- When an integer constant is assigned to a variable
whose KIND is smaller, don't change the KIND of the
constant for future references.
- Allow IMPLICIT REAL with $.
- Eliminate internal compiler error for RESHAPE of
array constructor
- Fix parsing error for typed function declaration with
MS-style argument passing specification in argument
list.
- Resolve incorrect generic resolution between
subroutine with no arguments (but () specified
as argument list) and routine with one required
argument.
- Allow named constant to be used in specification
expression later in same statement where it was
defined.
- Give error instead of compiler abort for IF (expr)
SELECT CASE
- For F90 standards checking, warn about I0, etc. in
FORMAT.
- Warn about variables in BLOCK DATA subprogram that
are not in a COMMON.
- Eliminate internal compiler failure for incorrect ".
AND." in free-form source.
- Improve handling of continued C-string escape
sequences
- Preserve order of data initializations where the same
location is initialized multiple times. While this is
not allowed by the standard, we do support it.

4-8 Visual Fortran Compiler Release Notes

- Correct problem with module visibility and ONLY.


- Eliminate internal compiler error for certain use of
POINTER and nested structures.
- Eliminate inappropriate error about multiple matching
procedures when generic operators are used.
- Correct parsing error of certain variable names in an
assignment following a logical IF.
- Eliminate inappropriate shape mismatch for certain
use of RESHAPE in a PARAMETER initialization
expression.
- Add /ASSUME:[NO]PROTECT_CONSTANTS
- Add support for DECORATE attribute.
- Use result field when verifying that results for
functions/entry points agree.
- Remove standard error of argument mismatch when
arguments do match.
- Implementation of new attributes: MIXED_STR_LEN_ARG
- Fix INQUIRE(IOLENGTH=L)A(3:15) to NOT copy the array.
- Fix problem with handling of data records with
initial data.
- Fix a problem optimizing nested implied DO loops.
- Fix a problem with FORALL when lhs/rhs overlap
detected and type is CHARACTER.
- No copy back for INTENT(IN) dummy arguments. When
an INTENT(IN) dummy argument, or a slice thereof, is
passed as an actual argument, we should NEVER do a
copy back. The actual array may be read-only, and the
INTENT(IN) says that we promise to not write to the
dummy argument. The copy back would be a write.
- Add support for [NO]MIXED_STR_LEN_ARG attribute in
!DEC$ ATTRIBUTES.
- Eliminate spurious error for declaration of RECORD
array in a COMMON block in a MODULE.
- Correct handling of generics where several routines

have an optional argument at the same position.


Visual Fortran Compiler Release Notes 4-9

- In C strings, allow octals of the form \ooo to have


1, 2 or 3 octal digits and hex objects of the form
\Xxx to have 1 or 2 hexadecimal chars.
- Add support for /check:arg_temp_created
- Annotations now are displayed on a per-routine basis.
- Put out type information to the debugger for module
functions
- Add diagnostic message:"The NOSEQUENCE directive may
not be specified for a component of a derived type
which has the SEQUENCE attribute."
- Use new RTL routine, for_check_mult_overflow(),
to calculate the size of an array to be allocated,
passing flag returned to for_allocate(). Also create
me_emit_by_val_arg() and use it where appropriate.
- Fix obscure bug with OPTIONAL mask for intrinsics
MAXLOC et al. The mask has an expression for the
dimension bound(s). 22-Nov-00 mrb - ffe_cl.c - allow,
without assertion violation - When a psect becomes too big, give a better error
message: ME_STOREQEXC "Psect !AD is too large. Reduce
array sizes or make arrays AUTOMATIC or ALLOCATABLE."
- Allow character substring assignment in forall.
- Fix a MODULE problem with named or blank common.
- Make -fast set the "align dcommons" bit. The effect
is ONLY on the listing.
- Fix an arg copy problem for array references like
a(:,:).
- Improve debug location for programs with adjustably
dimensioned arrays.
- Make fields of PRIVATE records PRIVATe too.
- Fix another problem with COMMON in MODULEs.
- Fix a problem with generic names in USE ONLY.
- Fix a problem with USE ONLY and renamed symbols.
- another problem with targets of pointer assignment.

4-10 Visual Fortran Compiler Release Notes

- Generate better code when ISHC has integer*4 or


integer*8 arguments.
- Fix problem with USEd routines that use derived types
or parameters in their definitions.
- Diagnose 'Arrays in reduction clauses are not
supported.'
- Fix INT_PTR_KIND to return 4 on Alpha/NT.
- call foo(NINT) should pass JNINT instead of ININT.
- Passing IDINT should use integer*4 instead of
integer*2 routine names.
- Issue diagnostic for character string as arg to RECL=
in OPEN statement.
- Fix a problem where a substring index in a FORALL
assignment stmt uses one of the indexing variables.
- Fix a problem with USEd routines that have local
variables in bounds.
- Fix /arch:k7 to generate prefetch instructions.
4.3 New Features and Changes for Version 6.5
The following changes have been made to the Compaq Fortran
compiler for VF T6.2.T Beta 1 (6.5 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.

Visual Fortran Compiler Release Notes 4-11

- 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".
- 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
signaled.
- Add a NULL 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.

4-12 Visual Fortran Compiler Release Notes

- 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
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.
Visual Fortran Compiler Release Notes 4-13

- 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.
- 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 hostassociation 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.

4-14 Visual Fortran Compiler Release Notes

- 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).
- Make sure that underflows go to zero with /fpe:0
and /fpe:1 in certain situations where they did not
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

Visual Fortran Compiler Release Notes 4-15

- Add support for KIND= keyword in various string


intrinsics.
- Prevent compiler abort for incorrect attempt to pass
unsupported data types 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.
- 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.
4-16 Visual Fortran Compiler Release Notes

4.4 New Features and Changes for Version 6.1A


The following changes have been made to the Compaq Fortran
compiler for 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.
- 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

Visual Fortran Compiler Release Notes 4-17

- 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.
- 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.

4-18 Visual Fortran Compiler Release Notes

- 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.
- 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.

Visual Fortran Compiler Release Notes 4-19

- 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.
- Eliminate GEM assertion for program unit that
declares a COMMON block, DLLIMPORTs it, but never
uses it.
4-20 Visual Fortran Compiler Release Notes

4.5 Features of Microsoft Fortran PowerStation Not Supported


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 Internal files can be any type
o Listing metacommands - $page, $pagesize, $linesize,
$[no]list, $include, $line

Visual Fortran Compiler Release Notes 4-21

5
_________________________________________________________________
Visual Fortran RTL Release Notes
This chapter provides the details about the following
changes to the Compaq Fortran run-time library (RTL)
system:
o Section 5.1, New Features and Changes for Version 6.6
o Section 5.2, Restrictions and Known Problems
o Section 5.3, New Features and Changes for Version 6.5A
o Section 5.4, New Features and Changes for Version 6.5
o Section 5.5, New Features and Changes for Version 6.1A
o Section 5.6, Run-Time Differences Between Visual Fortran
and Microsoft Fortran PowerStation
5.1 New Features and Changes for Version 6.6
The following changes have been made to the Compaq Fortran
run-time library (RTL) system for VF v6.6 since VF v6.5A
shipped:
o The following v6.6 changes have been made to the RTL
{-867}:
- Modifications were made to advapi32.{f90|mod} to
correct some problems that were identified.
- Modification to dfwinty.{f90|mod} to change the
definition of wchar from 1 to 2. This change
potentially propagates through all the other header
files, including those used in dfcom, dfauto,
dialogm.
- Comctl32 related changes/fixes done to
dfwinty.{f90|mod}
Visual Fortran RTL Release Notes 5-1

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

o The following v6.6 changes have been made to the RTL


{-864}:
- The syntax supported for NAMELIST input of derivedtype structure components has been extended. A period
(.) is allowed as a component selector, along with
the percent sign (%). The same component selector
must be used to separate all components within any
given structure.
- A problem with the run-time processing that supports
buffering I/O when using sequential write formatting
was fixed. (dfb3588)
- INTEGER*8 intrinsics were added.
- Interface definition for CryptAcquireContext added to
ADVAPI32.F90 and ADVAPI32.MOD files.
- libots: Bug in __OtsShift64 - failure to negate the
shift count (when negative) before executing a right
shift.
o The following v6.6 changes have been made to the RTL
{-855}:
- A problem where the use of subroutines contained
within the DFport.lib and DFnls.lib libraries from
within a DLL were generating an access violation has
been fixed. (cvf13898)
- PRESENT and DEALLOCATE will now both work on an
optional, allocated, 0-length object.
- The support for the ENDFILE
allow it to be specified on
behavior is to truncate the
end of the last record that

statement was extended to


a direct access file. The
direct access file at the
had been accessed.

- The files dforrtd.dll, dfordlld.lib, dformdd.dll and


dformdd.lib are provided as part of the Fortran Runtime support. These DLL files (and their associated
import libraries) are linked against the C debug DLL
msvcrtd. This will eliminate the problem where there
are multiply defined entry points when building a
mixed language image that is linked against the C
debug DLL msvcrtd.
5-2 Visual Fortran RTL Release Notes

o The following v6.6 changes have been made to the RTL


{-843}:
-

|
|
|
Under /fpe:0, the Fortran rtl default exception
|
handler would sometimes cause an access violation
|
while attempting to flush an underflow result to
|
zero. (cvf13016)
|
|
The Fortran RTL was not properly processing the input |
for a sequential or internal list directed read when |
the data contained a complex value with a repeat
|
count before it. Additionally, the number of digits
|
in the real part of the complex had to be less than
|
the number of digits in the imaginary part, i.e.,
|
10*(-1,1). This problem has been fixed. (cvf13179)
|
|
An error with list directed input dealing with an
|
asterisk, "*", that ended a non-delimited character
|
string that was immediately followed by a terminating |
comma was fixed. (cvf13556)
|
|
There are new versions of the module header files
|
DFWINTY.F90 and DFWIN.F90 (and its component files). |
These new module headers are designed to work in
|
both the 32-bit and 64-bit environments. Besides some |
additional content, the new data type definitions
|
and procedure interfaces to the Microsoft WIN32 APIs |
have been parameterized based on pointer size, and
|
coded in a way that makes it easy to see what the C
|
definition is.
|
|
For example: integer(LPVOID) Sacl ! pointers PACL
|
|
shows that Sacl is a pointer in two ways. LPVOID in
|
C indicates a pointer to any object, and the Fortran |
comment indicates that PACL was identified from a
|
list of known pointers. Most of the common C data
|
types have their own Fortran equivalent, and in most |
cases there is a comment showing the C definition.
|
|
These new header files require the following changes |
to the current set of sample programs:
|
|
...\SAMPLES\ADVANCED\WIN32\CHECK_SD\CHEK_SSD.F90
|
...\SAMPLES\ADVANCED\WIN32\TAKEOWN\TAKEOWN1.F90
|
|
Visual Fortran RTL Release Notes 5-3

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

The data type of luidPrivilegeLUID must be changed


from T_LARGE_INTEGER to T_LUID. This is required
because the C++ code base used for the new module
headers (VC++ 7) uses T_LUID.
...\SAMPLES\MISC\FORPRINT\FORTRAN_WINPRINT.F90
The data type T_DEVMODE along with a number of others
now uses STRUCTURE to nest unions directly in a data
type definition. In MS C, you can have anonymous
elements in a union, but in CVF, each field in a
union must have a name. In the FORPRINT sample, the
line: DEVMODE_struct%dmOrientation = Orientation
had to be changed to the following DEVMODE_
struct%field1%dmOrientation = Orientation
Similar changes must be made for the other data types
that use STRUCTURE. The code for data types is in
DFWINTY.F90 which is in the CVF INCLUDE library.
...\SAMPLES\ADVANCED\WIN32\TAKEOWN\TAKEOWN.F90)
Security descriptors come in two types, absolute
and relative. In the 32-bit versions of these data
types, they have the same layout, byte for byte, in
memory. Unfortunately, in the 64-bit versions, the
absolute version is much bigger than the relative
version. APIs such as SetSecurityDescriptorOwner
take a pointer to either type of security descriptor
in the C interface. Previously, this parameter was
defined as type T_SECURITY_DESCRIPTOR by reference
so that type checking could be done. Because of
the fact that the parameter can now point to two
quite different objects, the parameter's interface
definition has been changed to INTEGER(LPVOID). This
change was made to all CVF interfaces to APIs that
contain a pointer to a security descriptor in their C
interface.
To comply with the new interface definitions, all
security descriptor parameters must now take the LOC
of the parameter.
5-4 Visual Fortran RTL Release Notes

For example:

|
|
bret = SetSecurityDescriptorOwner (
&
|
LOC(SecurityDescriptor)
&
|
AliasAdminsSid,
&
|
.FALSE.
&
|
)
|
|
The code for these interfaces is in ADVAPI32.F90
|
which is in the CVF INCLUDE library.
|
|
Please let us know if you have to make any changes
|
to your native Windows applications to make them work |
with the new module header files, or if you find any |
errors in the new definitions.
|
|
o The following v6.6 changes have been made to QuickWin:
|
|
- Palette(0) was incorrectly being used as the
|
background color when filling objects such as
|
rectangles and ellipses. This has been corrected.
|
The color set by SETBKCOLOR or SETBKCOLORRGB is now
|
used as the background when filling an object. This
|
background color is used when a bitmap (as set by
|
SETFILLMASK) controls the filling. (cvf11466)
|
|
- The graphics routines POLYBEZIER, POLYBEZIER_W,
|
POLYBEZIERTO, and POLYBEZIERTO_W have been added
|
to QuickWin. For specific information, please refer
|
to the on-line documentation. An example program may |
be found following the entry for POLYBEZIERTO and
|
POLYBEZIERTO_W. (cvf12920)
|
|
- It is now possible to configure a QuickWin window
|
so that it will always show the last line written
|
and the text cursor (if it is on) by scrolling the
|
screen. This is done by calling SETWINDOWNCONFIG.
|
|
To enable this feature, do the following (where
|
wc is of the derived type windowconfig): wc%mode =
|
QWIN$SCROLLDOWN
|
|
You should also fill in the other fields as suggested |
in the online documentation for SETWINDOWCONFIG.
|
(cvf11495, cvf13153)
|
|
Visual Fortran RTL Release Notes 5-5

5.2 Restrictions and Known Problems


The following restrictions exist in the current VF 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 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 Run-time Libraries"
For information on the default libraries you will see
selected, see the online Programmer's Guide, in the
Programming with Mixed Languages chapter, the section on
Visual Fortran/Visual C++ Mixed-Language Programs.
5-6 Visual Fortran RTL Release Notes

5.3 New Features and Changes for Version 6.5A


The following changes have been made to the Compaq Fortran
run-time library (RTL) system for VF v6.5A since VF v6.5
shipped:
o The following changes have been made to the RTL {-824}:
- When the
AND_TIME
hold the
will now

DATE, TIME, or ZONE arguments to the DATE_


intrinsic routine are not large enough to
required information, a fatal run-time error
be generated. (dfb3475)

- The run-time support was enhanced to allow a REWIND


operation to be performed on a direct access file.
This is allowed without having to specify any command
line options.
- The run-time support was improperly positioning
before the last character in a file opened with
form='binary' and position='append' if the character
happened to be a control-z character, an achar(26).
The run-time support was fixed to not skip the
control-z under these conditions. (cvf11664)
- The run-time library default exception handler
could under some circumstances encounter an access
violation during processing of an exception. This
was most likely to occur in a Quickwin application
if an exception occurred before the program stack was
significantly decremented. The problem only occurs
on Windows operating systems prior to Windows 2000.
(cvf11454)
- The run-time library was not adding a trailing
terminator to the last record of an input file when
it was being redirected or piped to the standard
input unit, * and 5. The trailing terminator was
being added if the input file was being accessed
through any other input unit. This problem has been
fixed. (cvf10339)
- A problem where printing an IEEE floating point
denormal value in F format was incorrectly be
displayed in E format was fixed.
Visual Fortran RTL Release Notes 5-7

- The run-time support was fixed to generate the


correct output (12345*) for writes similar to the
following: WRITE (*,'(A,SP,I1)') '12345', +7
- An incorrect interface for fglColorPointer in
DFOPNGL.F90 has been fixed. (cvf12077)
- The run-time support was
consistency check when a
file='con' and later the
open the same unit. This
(cvf12249)

failing with an internal


unit is opened with
application attempts to
problem has been fixed.

- When a file has been explicitly opened with an OPEN


statement and an INQUIRE which specifies the file
name with different upper or lower case used for the
file name, the run-time support was returning .FALSE.
for an INQUIRE OPENED specifier. The run-time support
was modified to properly return .TRUE. for this case.
(cvf12278)
- Namelist input was not handling slices and strides
of arrays, array segments with zero and negative
positions, and character substrings of arrays. Note:
this implementation adheres to the F90 Standard,
so nested array slices are illegal. For example,
struct(1:2)%array(1:2) = 1,2,3,4 ! - is not legal.
You have to specify either: struct(1)%array(1:2) =
1,2 struct(2)%array(1:2) = 3,4
or: struct(1:2)%array(1) = 1,3 struct(1:2)%array(2) =
2,4
- Support for the environment variable FORT_BUFFERED
was added. When it is set to TRUE, the run-time
library will assume that buffered I/O will be used
for output to all I/O units, except those whose
output is to the terminal. This provides a run-time
mechanism to support the behavior enabled by the
/assume:buffered_io compilation option.
- The serial port support encountered a bug in the
underlying Windows thread support that caused a
memory leak in SPORT_CANCEL_IO(). This release of
the SPORT routines contains a workaround for that
bug, as well as a minor performance improvement.
5-8 Visual Fortran RTL Release Notes

o QuickWin related changes:


o In certain cases, the QuickWin functions GETWRITEMODE
would return a bad value for the current write mode.
This has been corrected. (cvf11465)
o The list of windows in QuickWin programs was not
being updated. This list is produced by clicking a
menu item provided by SETWINDOWMENUQQ. This problem
first appeared in version 6.1A, and also appears in
version 6.5. The proper behavior has been restored,
and the list is now updated when a window is deleted.
(cvf11652)
o MODIFYMENUROUTINEQQ was failing with an error return
if it was the first menu handling routine called.
This problem was caused by the pointer table for
menu routines having not been allocated yet. This
problem has been fixed by having MODIFYMENUROUTINEQQ
allocate the pointer table if it is not there, just
as APPENDMENUQQ and INSERTMENUQQ do. (cvf10276)
5.4 New Features and Changes for Version 6.5
The following changes have been made to the Compaq Fortran
run-time library (RTL) system for 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 occurred. An example is
included in the on-line samples. This routine is only
available on Intel platforms.

Visual Fortran RTL Release Notes 5-9

- A new routine GETEXCEPTIONPTRSQQ() has been added


for V6.5. This routine allows users who have
established signal handlers through 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
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.
5-10 Visual Fortran RTL Release Notes

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

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
END

CHARR(3), '< >', CHARR(4), '<'

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.
Visual Fortran RTL Release Notes 5-11

o QuickWin related changes:


- A QuickWin child window normally has its system menu
close item removed, and the X button 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. (cvf2485)
- 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.
5-12 Visual Fortran RTL Release Notes

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.
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
Visual Fortran RTL Release Notes 5-13

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, multiple units sharing a redirected stdin.
The solution to the current typeahead problem is
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)
5.5 New Features and Changes for Version 6.1A
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 runtime format that contained a repeated slash edit
descriptor. (bug2288)
- 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)
5-14 Visual Fortran RTL Release Notes

- 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
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 widths.


Visual Fortran RTL Release Notes 5-15

Font Families:
QWIN$EXTENDFONT_FF_ROMAN

Variable stroke width,


serifed. Times Roman, Century
Schoolbook, etc.

QWIN$EXTENDFONT_FF_SWISS

Variable stroke width, sansserifed. Helvetica, Swiss,


etc.

QWIN$EXTENDFONT_FF_MODERN

QuickWin default. Constant


stroke width, serifedor sansserifed. 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)
- 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)


5-16 Visual Fortran RTL Release Notes

- 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.

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)
Visual Fortran RTL Release Notes 5-17

- 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)
- 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)
5.6 Run-Time Differences Between Visual Fortran and Microsoft
Fortran PowerStation
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.
5-18 Visual Fortran RTL Release Notes

o The Visual Fortran RTL supports only a variable of the


character data type as a format data specifier (i.e.,
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
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.
Visual Fortran RTL Release Notes 5-19

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.
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
Hexadecimal(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) (i.e., 0.567) if there is
room. This is different than Fortran PowerStation which
5-20 Visual Fortran RTL Release Notes

does not always print the leading zero(0)(i.e., .567) if


there is room.
o The Visual Fortran RTL does not support the MATHERRQQ,
GETCONTROLFPQQ, SETCONTROLFPQQ, and GETSTATUSFPQQ
routines on non-Intel Platforms (i.e., 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
(i.e., 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.

Visual Fortran RTL Release Notes 5-21

6
_________________________________________________________________
Developer Studio Release Notes
This section contains the following information:
o Section 6.1, New Features and Changes for Version 6.6
o Section 6.2, Known Problems, Troubleshooting, and
Limitations
o Section 6.3, New Features and Changes for Version 6.5A
o Section 6.4, New Features and Changes for Version 6.5
o Section 6.5, New Features and Changes for Version 6.1A
o Section 6.6, New Features and Changes for Version 6.1
and 6.0
6.1 New Features and Changes for Version 6.6

|
|
The following changes have been made to Developer Studio
|
6.6 since VF v6.5A shipped:
|
|
o Developer Studio enhancements:
|
|
- Extended Project menu, Project Settings item, Fortran |
tab as follows:
|
|
* In the Fortran Data category, added support for
|
"Default Integer Kind" of 2, 4, or 8
|
|
* In the Library category page, the Use run-time
|
libraries list more closely resembles the same
|
category in the C/C++ tab and includes debug
|
versions.
|
|
* In the Listing category, added support for the
|
Annotations list box and /annotations keywords.
|
|
* In the Compatibility category under Microsoft
|
Fortran PowerStation, added support for List
|
Directed I/O Spacing (/fpscomp:ldio_spacing).
|
Developer Studio Release Notes 6-1

|
|
|
|
|
|
|
|
|
|

- Fixed Developer Studio (DevStudio) hang after Managed


Saved Environment "Modify" of a saved environment.
- Added certain updates to applicable parts of
Microsoft Developer Studio from Visual Studio SP5.
6.2 Known Problems, Troubleshooting, and Limitations
Known Problems with using Developer Studio with the current
version of Visual Fortran include:
o 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.
o 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.
o 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.
6-2 Developer Studio Release Notes

o 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.
o 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).
Troubleshooting Developer Studio problems:
o 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.
* Change the "Preferred collection" in Developer
Studio; see the Tools menu, Options item, Help System
tab.
o 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
read 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:
Developer Studio Release Notes 6-3

________________________________________________________
If_your_system_is:____Copy_the_file_to_this_directory:__
Windows 9*

Windows directory\system

Windows NT 4

Windows directory\system32

Windows_2000__________Do_not_copy_the_file______________
o 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 unless
'Generate browse info' is checked on the C/C++ settings pa
ge 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.
o 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.
o 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
o 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
6-4 Developer Studio Release Notes

2 seconds or longer. Executing a console application


that does a "CALL SLEEP(2)" will work fine.
o 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.
o 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 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.
o 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:
Developer Studio Release Notes 6-5

_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.
|

Limitations of Developer Studio:


o 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.
o Fortran editor does not support the following Edit
menu commands: List members, Type info, Parameter info,
Complete word.
o 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.
6.3 New Features and Changes for Version 6.5A
The following changes have been made to Developer Studio
6.5A since VF v6.5 shipped:
o Developer Studio enhancements:
- Support has been added for new compiler options:
/warn:[no]ignore_loc
/assume:[no]protect_constants
/check:arg_temp_created
6-6 Developer Studio Release Notes

o Fortran COM Server Wizard enhancements:


- You can create out of process (.EXE) COM servers.
- You can specify that an array argument is assumed
shape.
- You can specify that an intent:in argument is passed
by reference.
- You can add the ISupportErrorInfo interface to your
server.
See the updated "Creating a COM Server" chapter in the
online Visual Fortran Programmer's Guide.
o Fortran Module Wizard enhancements:
- The Module Wizard can now be run from the command
line. This allows you to run the wizard as part of a
project build. For a list of MODWIZ command options
type the following command in a Fortran Command
Prompt:
MODWIZ /?
6.4 New Features and Changes for Version 6.5
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.
Developer Studio Release Notes 6-7

o DFCOM module enhancements:


- Two new routines 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.


6-8 Developer Studio Release Notes

6.5 New Features and Changes for Version 6.1A


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)
* For documentation purposes, adds any CXML
libraries needed 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.
6.6 New Features and Changes for Version 6.1 and 6.0
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:
Developer Studio Release Notes 6-9

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.
- 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.
6-10 Developer Studio Release Notes

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.
- 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.

Developer Studio Release Notes 6-11

7
_________________________________________________________________
Visual Fortran Documentation Release Notes for Version 6
This section describes documentation changes for Visual Fortran:
o Section 7.1, Version 6.6 Documentation Changes
o Section 7.2, Version 6.5 and 6.5A Documentation Changes
o Section 7.3, Version 6.1 Documentation Changes
o Section 7.4, PDF Files, HTML Files, and Samples
7.1 Version 6.6 Documentation Changes

|
|
The online documentation has been updated for Version 6.6. |
|
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.6, which is available in
|
HTML Help (online documentation) from the Visual Fortran
|
Home Page.
|
|
Information about support for Windows NT Alpha systems has |
been removed and some preliminary information about IA-64
|
support has been added. The following platform labels have |
been added to identify platform differences in text and
|
headings:
|
|
o IA-32 or ia32 only
|
|
o IA-64 or ia64 only
|
|
HTML versions of the revised Visual Fortran 6.6 and Array
|
Visualizer 1.6 online HTML Help documentation, the Compaq
|
Fortran Language Reference Manual, and the Compaq Visual
|
Fortran Installing and Getting Started are now provided
|
on the Visual Fortran CD-ROM (see Section 7.4). To view
|
these files, open the appropriate local disk files in a Web |
browser.
|

Visual Fortran Documentation Release Notes for Version 6 7-1

|
|
|
|

PDF versions of the revised Visual Fortran and Array


Visualizer online HTML Help documentation and the Compaq
Visual Fortran Installing and Getting Started are also
provided (see Section 7.4).
7.2 Version 6.5 and 6.5A Documentation Changes
The following summarizes online documentation changes for
Compaq Visual Fortran Version 6.5 and 6.5A:
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 and 6.5A, which is
available in HTML Help (online documentation) from the
Visual Fortran Home Page.
o New sections and chapters have been added to the online
Compaq Visual Fortran Programmer's Guide. For example,
the new chapters added for Version 6.5 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 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. For the location of the
online PDF file for Compaq Visual Fortran Installing and
Getting Started, see PDF Files, HTML Files, and Samples.
7.3 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.
7-2 Visual Fortran Documentation Release Notes for Version 6

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.
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
have a link to a section that describes
features. The sections contain links to
where the new features are discussed in

home pages now


new and changed
the sections
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 9 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.
Visual Fortran Documentation Release Notes for Version 6 7-3

- 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).
7.4 PDF Files, HTML Files, and Samples
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

o A revised 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 the file
Readme.htm or Dflrm.htm in a browser or view the file
Readme.txt from Info\Df\Doc\Lrm). This document and the
online Language Reference now show Compaq extensions
(blue-green color) to the Fortran 95 standard.
o HTML versions of the following HTML Help
provided on the Visual Fortran CD-ROM in
(and subfolders of) Info\Df\Doc\CVF_Html
Readme.htm in a browser or view the file
Info\Df\Doc\CVF_Html):

titles are
the folder
(open the file
Readme.txt from

- Language Reference
- Programmer's Guide
- Error Messages
- Array Visualizer
o A revised HTML version of the Compaq Visual Fortran
Installing and Getting Started is provided on the
Visual Fortran CD-ROM in the folder Info\Df\Doc\CVF_
HTML (open the file Readme.htm in a browser or view the
file Readme.txt from Info\Df\Doc\CVF_Html).
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. This file is also installed by
7-4 Visual Fortran Documentation Release Notes for Version 6

default in the directory Program Files\Microsoft Visual


Studio\Df98.
Most of the Visual Fortran HTML Help documentation is
also available 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 is located in the directory
x86\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 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 4.0 (or later). The Acrobat Reader can be
downloaded from the Adobe Web site: http://www.adobe.com
If you do not have Internet access, you can install
Acrobat Reader 4.0 by double-clicking the exe file in
the following directory on the Visual Fortran CD-ROM:
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 Road Map to the Samples and Samples Folders
Visual Fortran samples are provided in directories
below:
On the VF CD-ROM:

info\Df\Samples

Visual Fortran Documentation Release Notes for Version 6 7-5

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

On your disk after Program


installation:
Files\ArrayVisualizer\Samples
There is a separate Roadmap to the Array Visualizer
Samples, samples.htm, provided in:
On the Array
x86\Samples\Samples.htm
Visualizer CD-ROM:
On your disk after Program Files\ArrayVisualizer\Samples\Sampl
es.htm
installation:

7-6 Visual Fortran Documentation Release Notes for Version 6

8
_________________________________________________________________
Debugging Related Release Notes
This chapter provides the details about the following
changes to the Compaq Fortran debugger support:
o Section 8.1, Changes Made to Version 6.6
o Section 8.2, Restrictions and Known Problems
o Section 8.3, New Features and Changes Made to Version
6.5 and 6.5A
o Section 8.4, New Features and Changes Made to Version
6.1A
8.1 Changes Made to Version 6.6
The following changes have been made to the debug support
for 6.6 since V6.5A shipped:
o Support was added to allow displaying and debugging of
INTEGER*8 variables.
o In previous versions, attempting to display an array
module variable in the array visualizer from the
debugger resulted in an error message. This has been
fixed.
8.2 Restrictions and Known Problems
Known problems with the current debug support:
o The return value for complex-valued functions does not
display properly if the function has alternate entry
points.

Debugging Related Release Notes 8-1

|
|
|
|
|
|
|
|
|
|
|
|
|

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.
8.3 New Features and Changes Made to Version 6.5 and 6.5A
|
|

No changes have been made to the debug support for 6.5A


(since Version 6.5).
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 floatingpoint values in a watch window using the 'f', 'g', or
'e' format specifiers.
8.4 New Features and Changes Made to Version 6.1A
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:

8-2 Debugging Related 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(:,:)
Debugging Related Release Notes 8-3

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.

8-4 Debugging Related Release Notes

9
_________________________________________________________________
Compaq Extended Math Library (CXML) Release Notes
Please read this section before installing or using the
Compaq Extended Math Library (CXML).
Visual Fortran Version 6.6 includes a new version of the
Compaq Extended Math Library (CXML), CXML Version 5.0 (see
Section 9.2).

|
|
|

This chapter contains important installation information


and release notes about using CXML with Compaq Visual
Fortran. The information in this document is more up-todate 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,
which uses multi-threaded dynamic link libraries, e.g., |
DFORMD.LIB and MSVCRT.LIB.
|
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:
INCLUDE 'CXML_INCLUDE.F90'
Compaq Extended Math Library (CXML) Release Notes 9-1

This allows the proper CXML library (either CXML.LIB or


CXMLDLL.LIB) to be linked.
9.1 Installing and Using CXML
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 the Compaq
Visual Fortran Installing and Getting
Started

Introductory
material and
features

"CXML Libraries" in the Compaq Visual


Fortran Installing and Getting Started

Usage

"Using the CXML Math Libraries" in


the online Compaq Visual Fortran
Programmer's Guide

Routine reference

CXML Reference Guide, in the CXML\Doc


directory, file Cxmlref.pdf

Latest CXML
The CXML website at:
release
http://www.compaq.com/math
information________________________________________________
|
|
|
|
|
|
|
|
|
|
|
|

9.2 CXML New Features


The following changes have been made to CXML v5.0 for this
Visual Fortran 6.6 release:
o The performance of a number of CXML routines has been
improved relative to the previous release of CXML.
o CXML now includes a new set of routines for solving
sparse matrix problems using direct methods.
Documentation for the new sparse solver routines is
included in the CXML Reference Guide.
9-2 Compaq Extended Math Library (CXML) Release Notes

o The skyline solver routines are no longer supported.


They have been removed from this version of CXML. If you
are currently using skyline solvers, we recommend that
you switch to the new direct solver routines.
o

|
|
|
|
|
Sample files which show how to invoke the direct sparse |
solver routines from Fortran 95/90, and C are available |
in the CXML Samples folder:
|
|
\Df98\CXML\Samples
|
|
The interface to the following sparse iterative solvers |
functions has been changed:
|
|
DMATVEC_SDIA
DMATVEC_GENR
|
DAPPLY_POLY_SDIA DAPPLY_POLY_GENR
|
|
The mechanism for printing messages in the iterative
|
solvers has been changed. Users now have an option to
|
either supply their own print routine (which is invoked |
by the iterative solvers to print messages) or have the |
messages printed out to the standard output device.
|
A detailed description of the new functionality is
|
provided in the "Using Iterative Solvers" section of
|
the CXML Reference Guide.
|
|
In the iterative solvers, the argument iounit no longer |
determines the kind of information to be printed. Now
|
the argument iolevel determines the level of information |
to be printed. In case of a negative value for iolevel, |
no information is printed. Refer to the CXML Reference
|
Guide for more details - examples are also provided that |
reflect the modifications required in the user's code
|
for the correct use of iterative solvers.
|
|
The auxiliary LAPACK routine XLAENV is no longer
|
supplied, or used, by CXML. The LAPACK routines DLAMCH
|
and SLAMCH have been modified to return compile time
|
constants instead of computing values on each call.
|
|

Compaq Extended Math Library (CXML) Release Notes 9-3

10
_________________________________________________________________
Compaq Array Visualizer Release Notes
This section provides release notes for Compaq Array
Visualizer:
o Section 10.1, New Features and Changes for Version 1.6
o Section 10.2, Array Visualizer Known Problems and
Limitations
o Section 10.3, New Features and Changes for Versions 1.5A
and 1.5
o Section 10.4, New Features and Changes for Versions
1.1A, 1.1, and 1.0
o Section 10.5, Compaq Array Visualizer Overview and
Description of Features
o Section 10.6, Using the Fortran Array Visualizer from
the Debugger
o Section 10.7, The Fortran Array Visualizer Uses HDF
Libraries
10.1 New Features and Changes for Version 1.6
The following changes have been made to the Compaq Array
Visualizer for v1.6 since VF v1.5A shipped:
o A problem in the Array Viewer has been fixed where a
program exception might occur when viewing an HDF file
if a dimension scale of a dataset has the same name as
the dataset.
o 8-byte integer types are now supported.
o A workaround for a Microsoft OpenGL bug that effects
Windows 2000 systems (cf: MS KB Q272222) has been
implemented.
Compaq Array Visualizer Release Notes 10-1

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|

o The following C++ methods have been added to


the Aview library: CAViewer::GetModifiedFlag,
CAViewer::SetModifiedFlag, and CAViewer::IsVisible;
see Array Visualizer online documentation for details.
o The following Fortran routines have been added to the
Aview library: favGetModifiedFlag, fagSetModifiedFlag,
and favIsVisible; see the Array Visualizer online
documentation for details.
10.2 Array Visualizer Known Problems and Limitations
The following are known problems and limitations:
o Array Viewer:
- In 256-color mode, the data tip 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.
10.3 New Features and Changes for Versions 1.5A and 1.5
The following changes have been made to the Compaq Array
Visualizer for v1.5 and 1.5A since Array Visualizer v1.1
shipped:
o Version 1.5A release:
- Array Visualizer v1.5A updates Array Visualizer v1.5.
- A problem in the 1.5 release has been fixed where
a program exception might occur if special ASCII
characters were used in axis labels.
o Version 1.5 release:
- A problem with negative length values in the ROI
settings dialog for large arrays has been fixed.
10-2 Compaq Array Visualizer 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 ended as of 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 (see Section 10.7 for information
on HDF).
Compaq Array Visualizer Release Notes 10-3

- A resource leak in the AnimWin32 sample has been


fixed.
- 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-ROM. The latest version
of the HDF libraries can be downloaded from:
http://hdf.ncsa.uiuc.edu.
10.4 New Features and Changes for Versions 1.1A, 1.1, and 1.0
The following changes have been made to the Compaq Array
Visualizer for Versions 1.1A, 1.1, and 1.0:
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.
10-4 Compaq Array Visualizer Release Notes

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.
- 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.
Compaq Array Visualizer Release Notes 10-5

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.
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.
10.5 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.
10-6 Compaq Array Visualizer Release Notes

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.
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
Compaq Array Visualizer Release Notes 10-7

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
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.
10.6 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.
10-8 Compaq Array Visualizer Release Notes

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.
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.
Compaq Array Visualizer Release Notes 10-9

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.
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.

10-10 Compaq Array Visualizer Release Notes

10.7 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.
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

Compaq Array Visualizer Release Notes 10-11

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.

10-12 Compaq Array Visualizer Release Notes

11
_________________________________________________________________
Fortran Format Editor Release Notes
There are no changes to the Format Editor for Version 6.6.
The following are limitations and supplemental notes about
the Fortran Editor:
o The Format Editor does not support "Variable Format
Expressions".
o The Format Editor does not support "Repeat
Specifications" greater than 99.
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

15

15

15

Fortran Format Editor Release Notes 11-1

________________________________________________________
Edit
Descriptor______Default_Width___________________________
G

15

EN

15

ES______________15______________________________________

11-2 Fortran Format Editor Release Notes

You might also like