Compaq Visual Fortran Release Notes
January 2001
This document contains information about
Compaq Visual Fortran.
Software Version: Compaq Visual Fortran
Version 6.5A
Compaq Computer Corporation
Houston, Texas
January 2001
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.
© 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.
Other product names mentioned herein may be trademarks
of their respective companies.
Major changes since Version 6.5 are indicated in blue
color in HTML output and by change bars in the margin in the plain
ASCII TXT output.
Chapter 1
Compaq Visual Fortran Version 6.5A Release Notes
This chapter contains release notes for Compaq Visual Fortran Version 6.5A.
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.
This chapter contains the following sections:
-
Section
1.1, Introduction
-
Section
1.2, General Release Notes
-
Section
1.3, Installation Release Notes
-
Section
1.4, Version 6 News
-
Section
1.5, Visual Fortran Documentation Release Notes for Version 6
-
Section
1.6, Visual Fortran Compiler Release Notes
-
Section
1.7, Visual Fortran RTL Release Notes
-
Section
1.8, Compaq Extended Math Library (CXML) Release Notes
-
Section
1.9, Developer Studio Release Notes
-
Section
1.10, Compaq Array Visualizer Release Notes
-
Section
1.11, Fortran Format Editor Release Notes
-
Section
1.12, Debugging Related Release Notes
1.1 Introduction
Thank you for choosing Compaq Visual Fortran. These release notes describe
this new release, called
version 6.5A, of Compaq
Visual Fortran (abbreviated "VF" in what follows):
-
VF v6.5A updates VF v6.5.
-
VF v6.5 replaces VF v6.1A. There are no released versions of VF numbered
6.2, 6.3, or 6.4.
-
VF v6.5A contains Array Visualizer v1.5A which replaces
Array Visualizer v1.5. There are no released versions of Array Visualizer
numbered 1.2, 1.3, or 1.4.
-
Alpha users should be aware that support for Windows NT Alpha systems ends
December 31, 2000. Releases of Visual Fortran after Version 6.5A will no
longer support Windows NT Alpha systems.
-
Compiling using .MOD files is now much faster. We have made the .MOD files
smaller and faster to search.
Note
All .MOD files created by CVF
T6.2 Beta 1 or Beta 2 must be recompiled with CVF v6.5 in order to work
properly. |
-
VF v6.5 contains the Fortran COM Server Wizard.
-
VF now generates optimized code for the Intel Pentium III, AMD K6, and
AMD Athlon (K7) architectures.
-
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.
For more details, see the sections below:
-
Section
1.2, General Release Notes
-
Section
1.3, Installation Release Notes
-
Section
1.4, Version 6 News
-
Section
1.5, Visual Fortran Documentation Release Notes for Version 6
-
Section
1.6, Visual Fortran Compiler Release Notes
-
Section
1.7, Visual Fortran RTL Release Notes
-
Section
1.8, Compaq Extended Math Library (CXML) Release Notes
-
Section
1.9, Developer Studio Release Notes
-
Section
1.10, Compaq Array Visualizer Release Notes
-
Section
1.11, Fortran Format Editor Release Notes
-
Section
1.12, Debugging Related Release Notes
1.2 General Release Notes
Compaq Visual Fortran (CVF or VF) Version 6.5A is
an enhancement of VF v6.5, the current shipping product for both Intel/Win32
(x86 systems) and Alpha/NT systems, and includes patches for problems
fixed since VF v6.5 shipped. VF V6.5A updates the Compaq Fortran 90/95
compiler, run-time library, certain IDE pieces, the Array Visualizer, and
VF documentation. VF 6.5 does not update the Compaq Extended Math Library
(CXML), the IMSL libraries, or Microsoft Developer Studio.
Compaq Visual Fortran v6.5 is available in two separate products:
-
Compaq Visual Fortran Standard Edition
The VF Standard Edition contains the VF compiler, libraries, the Compaq
Extended Math Library (CXML, a set of mathematical subprograms covering,
for example, Basic Linear Algebra, Linear System and Eigenproblem Solvers,
and Sparse Linear System Solvers), and Developer Studio to support Intel
processors running Windows/NT (including Windows 2000) or Windows 9*.
-
Compaq Visual Fortran Professional Edition
The VF Professional Edition contains the VF compiler, libraries, CXML,
and Developer Studio to support the Compaq Alpha processors running Windows
NT; it contains the IMSL math and statistics libraries for both Intel and
Alpha; it contains the Compaq Array Visualizer; it also contains what the
Standard Edition contains: the VF compiler, libraries, CXML, and Developer
Studio to support Intel processors running Windows/NT (including Windows
2000) or Windows 9*
(including Windows Me).
This product requires that you be running Windows NT Version 4.0 with Service
Pack 3 or Windows 9* or Windows 2000. Service Pack 3 will be installed
by the Visual Fortran installation if required. VF also requires Microsoft
Internet Explorer V4. Internet Explorer V4 will be installed by the Visual
Fortran installation if required. VF v6.5 contains Microsoft Developer
Studio Studio 98 (Developer Studio v6.0) and is not compatible with the
DevStudio on VF v5.0A (Standard and Professional) and Microsoft Visual
C++ (Intel and Alpha) v5.0. VF v6.5 can co-exist on the same system with
Developer Studio V5 products.
VF v6.5 contains bug fixes, performance improvements, extensions to
improve compatibility with Microsoft Fortran PowerStation, and additional
minor features.
The Standard and Professional editions of Compaq Visual Fortran V6.5
contain complementary products from the following vendors:
-
Kuck & Associates, Inc.
Visual KAP, a code restructuring tool that can improve the performance
of computer programs on serial and parallel Win32 Intel systems (Compaq
also sells a KAP product for Alpha NT systems that is *not included* on
the companion product CD-ROM)
-
NAG, Ltd.
NAG Numerical Libraries, numerical and statistical routines in four
libraries (Fortran 77, Fortran 90, C, and parallel) for Win32 Intel and
Alpha systems. The Alpha libraries will be made available sometime after
CVF v6.1 is released.
-
Galaxy Applied Engineering, Inc.
UGL-Graphics(TM) library, scientific graphics subroutine libraries
for Intel and Alpha systems
-
Canaima Software's f90SQL
f90SQL is a library of functions and subroutines that work as an interface
between your Fortran programs and Microsoft Windows Open Database Connectivity
(ODBC) API.
Customers must contact the vendors to purchase a license and access key
for the software on the Companion Product CD-ROM per instructions with
each product on the CD-ROM.
1.3 Installation Release Notes
1.4 Version 6 News
This section describes Version 6 news and notes:
1.4.1 Version 6.5 and 6.5A News
Version 6.5A news:
Version 6.5 news:
-
Compiling using .MOD files is now much faster. We have made the .MOD files
smaller and faster to search.
Note
All .MOD files created by CVF
T6.2 Beta 1 or Beta 2 must be recompiled with CVF v6.5 in order to work
properly. |
-
New in v6.5 is the Fortran COM Server Wizard. The wizard generates the
Fortran code necessary to implement a COM server, and allows you to concentrate
on the code that is specific to the component you are creating. The v6.5
wizard creates in-process 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.
-
%VAL and %REF applied to actual arguments now override any mechanism attributes
specified for the matching dummies in an explicit interface.
-
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.
-
VF now generates optimized code for the Intel Pentium III, AMD K6, and
AMD Athlon {K7} architectures.
-
New COM routines provided are COMStringFromGUID and COMIsEqualGUID.
-
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
-
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.
-
Support for reading nondelimited character strings as input for character
NAMELIST items has been added.
-
New environment variable FORT_CONVERT_ext acts like environment
variable FORT_CONVERT.ext.
-
New exception handling routines are CLEARSTATUSFPQQ and GETEXCEPTIONPTRSQQ.
-
New Visual Fortran Samples (described in Roadmap to the Visual Fortran
Samples) are provided, including:
-
COM sample: Adder
-
DIALOG sample: Celsicon
-
ExceptionHandling samples: ClearFP, Cslexp2, Cslexp4, GetEptrs, Vbvf1,
and Winexcp1
-
Isovar sample (ISO varying strings)
-
Mixed-language samples, new samples for MASM and Delphi
-
QuickWin samples: Conapp, Dirkeys4, PostMini, and Resize
-
Configuring Concurrent License Wait Time
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\VisualFortran\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\VisualFortran\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.
-
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
|
-
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.
1.4.2 Version 6.1 News
The following Version 6.1 news should also be noted:
-
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.
-
VF v6.1 Professional CD contains v6.0 IMSL libraries
The VF v6.1 Professional kit contains the IMSL libraries from the VF
v6.0 Professional kit. The VF v6.1 Getting Started and Programmers Guide
document new v6.1 IMSL libraries that will be made available via a web-downloadable
patch kit soon after VF v6.1 ships.
-
NO_ARG_CHECK attribute
The NO_ARG_CHECK attribute specifies that type and shape matching rules
related to explicit interfaces are to be ignored. This permits the construction
of an INTERFACE block for an external procedure or a module procedure that
accepts an argument of any type or shape. See the online documentation
for more information.
Compaq recommends that arguments declared as type CHARACTER not be
given the NO_ARG_CHECK attribute, as argument passing inconsistencies may
otherwise result.
-
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 and FPP) |
If Intel |
-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.
-
A new item has been added to the Developer Studio File menu, "Print Colorized
Fortran...". This item prints a Fortran source file in color. It uses the
FSC utility, described elsewhere in the release notes, to create an HTML
file with the coloring information. It then instructs the application on
your system that handles HTML files to print the file. This has been tested
with the Internet Explorer and Netscape browsers. If you encounter a problem
using the "Print Colorized Fortran..." item, please use the FSC utility
directly. Note that "Print Colorized Fortran..." creates the HTML file
in your TEMP directory, and does not delete the file since it does not
know when the printing has completed. You may delete these files to free
up disk space.
-
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.
-
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.
-
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.
-
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.
-
New functionality has been added to the Dialog Procedures:
-
You may use ActiveX Controls in your dialog boxes. See "Using ActiveX Controls"
in the "Using Dialogs" section of the online Compaq Visual Fortran Programmer's
Guide.
-
Edit Box control enhancements:
-
You may now use multiline edit controls.
-
The maximum size restriction of 256 characters has been removed.
-
The Edit Box control supports two additional integer indexes:
DLG_TEXTLENGTH - Sets or Gets the current length of the text
in the edit box.
DLG_POSITION - Sets or Gets the current text cursor position in the
edit box.
-
New Routines:
-
DlgSetTitle - Sets the title of the dialog box.
-
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.
-
New SPORT_xxx (Serial Port) routines have been added
The SPORT_xxx collection of routines is designed to help the Fortran
programmer do basic input and output to serial ports. The programming model
is much the same as a normal file except the user does a connect/release
instead of an open/close. Two types of read and write operations are provided.
One set reads and writes arbitrary data from/to the port while the other
set reads and writes line terminated data. Calls are provided to set basic
port parameters such as baud rate, stop bits, timeouts, etc. Additionally,
a call is provided to return the WIN32 handle to the port so that raw WIN32
APIs may be used to implement additional needs of the programmer.
The documentation overview can be found in Programmers Guide-> Files,
Devices, and I/O Hardware->I/O Hardware->Using the Serial I/O Port Routines.
The detail description of the routines can be found in Language Reference->A
to Z Reference->S.
-
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.)
-
Greater Access to Windows APIs
DFWINTY.F90 has 980 new derived types and 4070 new Fortran parameter
constants added. These new items represent the difference between Microsoft
Visual C++ 4 header files and Visual C++ 6 header files.
USER32.F90 has 72 new interfaces to routines in USER32.LIB. These new
routine interfaces again represent the difference between Microsoft Visual
C++ 4 header files and Microsoft Visual C++ 6 header files.
KERNEL32.f90 has 50 new interfaces to routines in KERNEL32.LIB.
GDI32.F90 has 25 new interfaces to routines in GDI32.LIB.
ADVAPI32.F90 has 50 new interfaces to routines in ADVAPI32.LIB.
In all these files, the new material is under conditional compilation
so that defining "__DO_NOT_INCLUDE_VC6_ITEMS" will remove the new items.
Search for the string above to locate the new items which will be found
towards the end of the file.
The files are shipped without the string being defined, and the module
files will contain the new items.
-
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
|
-
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.
1.4.3 Version 6.0 News
The following v6.0 news should be noted:
-
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.
-
Effective with this release, the v4.0 Microsoft Fortran 90 compiler for
Intel is no longer supplied on the Visual Fortran kit.
-
Support for traceback is included with this VF kit.
When an application aborts with a severe error, the Fortran runtime
will now, by default, display its usual error message plus a hex dump of
the call stack at the time of the error. If the executable image includes
traceback information, the runtime will also provide correlation of program
counter values to the source file, routine name and line number. The inclusion
of traceback info is under the control of a new compiler option, /traceback.
The /traceback option is on by default in IDE Debug configurations and
off by default in IDE Release configurations.
If you do not want to see traceback output, you can disable it with
a new environment variable, FOR_DISABLE_STACK_TRACE. Set the environment
variable to true to turn off the output. You will still get the standard
runtime error message telling you what happened if you disable stack trace
output.
Since the expected correlation information can only be generated by
the Fortran compiler, mixed language applications will only see correlation
for that part of the application written in Fortran. You'll still get hex
PCs for anything else but you can manually correlate that information by
use of a map file.
The online Compaq Visual Fortran Programmer's Guide contains
more information on generating and using traceback information to debug
your application.
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.
-
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.
-
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.
-
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.
-
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.
-
The RTL has a new feature for helping to debug unhandled IO programming
errors in the IDE. When a severe unhandled IO programming error occurs
(such as an End-of-File condition), and the program is executing in the
debugger, the RTL will raise a debug event automatically so execution will
stop and the Call Stack Display (Alt+7) can be viewed.
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.
-
The /optimize:5 and /[no]transform_loops options are now supported on the
Intel platform. They have always been there on the Alpha platform.
-
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.
-
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 |
|
default |
C |
STDCALL |
C+REFERENCE |
STDCALL+REFERENCE |
default |
w/len |
arg(1:1) |
arg(1:1) |
w/len |
no len |
reference |
no len |
no len |
no len |
no len |
no len |
This was how Microsoft PowerStation originally specified this behavior,
so VF specified it too. However, there was no ability to pass a character
argument with the hidden length *and* using the STDCALL attribute for the
function. This was a major problem that did not occur with the C attribute
because specifying C+REFERENCE did pass the length. Also, this was the
only case where the C+REFERENCE behavior varied from the STDCALL+REFERENCE
behavior.
As a result, the STDCALL+REFERENCE behavior has been modified (when
no attribute is given to the argument) to match the C+REFERENCE behavior,
i.e. pass both the address and the hidden length in this case. This allows
the use of STDCALL while still being able to pass the address of character
arguments with or without the hidden length.
To pass the address only, i.e., to get the old behavior, add the REFERENCE
attribute to character arguments while keeping both the REFERENCE and STDCALL
attributes on the routines.
-
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.
-
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.
-
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".
-
New functionality has been added to the Dialog Procedures:
-
Support for modeless dialog boxes (DlgModeless)
-
Support for Picture, Progress, Spin, Slider and Tab controls
-
Support for the DLG_ADDSTRING control index for List and Combo Boxes
-
Support for initial data for Combo Boxes
See the "Using Dialogs" section of the online Compaq Visual Fortran
Programmer's Guide for details. There is a new DIALOG samples directory
which demonstrates the use of the new functionality.
If you used any of the non-public procedures or structures in DFLOGM.F90,
you must recompile your code before relinking.
-
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").
1.4.4 Version 6 Notes
-
The directories
\x86\USUPPORT and
\AXP\USUPPORT
on the CD-ROM contain some unsupported but nevertheless useful tools. For
example:
...\Support Directory |
Description |
\Misc\CTEST.EXE |
This program may be renamed to "WHICH.EXE" and placed somewhere on
a users PATH to perform the function of the Unix "which" command. |
\Misc\WHAT.EXE |
This program will scan a binary file for Unix style "what" strings
and display any that are found. The DECFOR90.EXE may be used as an example
of a file that contains these "what strings". |
\Misc\STRSUB.EXE |
This program will process a text file and replace all occurences of
a given string with another string. |
\Misc\FIXMSTAB.EXE |
This program converts Fortran source code that uses Microsoft style
tab rules to follow Compaq Fortran standard TAB rules. |
\Misc\CBANLC.EXE |
This program analyzes object and library files for inconsistencies
in Fortran COMMON blocks that can lead to LINK errors and program failures.
For instance, this tool will tell you if you have declared two COMMON blocks
of the same name that have different sizes. Note that because of performance
considerations, a COMMON block whose size is less than 8 bytes is reported
to have a size of 8 bytes. This may cause inconsistencies in small COMMON
blocks to not be reported. |
\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. |
-
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.
-
To allow you to read the Compaq Visual Fortran Installing and Getting
Started guide before (or during) installation, the Getting Started
document is provided in Adobe Acrobat Reader (PDF) format in the root directory
of the Visual Fortran CD-ROM with a file name of CVF_GS.PDF. This file
requires Acrobat Reader Version 3.01 (Version 3.02 or later recommended),
which can be downloaded from: http://www.adobe.com
After you install Visual Fortran, you can view the Visual Fortran Language
Reference, Programmers Guide, Error Messages, Array Visualizer, and other
online documentation with HTML Help Viewer.
-
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".
-
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.
-
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.
-
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:
Or, as part of the DF or F90 command:
df foo.f /link /stack:4000000
|
You also have the option to modify the stack size in the executable
itself using EDITBIN, such as:
editbin /stack:4000000 foo.exe
|
By default, the stack size is 0x100000, or (1,048,576 decimal).
-
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.
-
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.
-
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.
-
On Windows 95 and Windows 98 systems, fpe:0 doesn't work correctly on underflow.
The hardware signals the underflow but the operating system reports a floating
invalid. Instead of making the result value 0.0, the program aborts.
1.4.5 Version 6.5A Known Problems
The following known problems remain in VF:
-
Control C handlers
Problems have been reported with implementing console event handlers
(e.g., control C handlers) in programs built with Visual Fortran. The symptom
is usually that the handler is seemingly never invoked. This is due to
the implementation of console event handling on WIN32 platforms. In response
to a cntl-C event, the operating system will create a new thread to execute
the handler in. In order for the new thread to execute, it must obtain
priority. If the currently executing thread does not relinquish its priority,
it is possible that program execution will terminate before the console
event handler ever executes. For example, a READ statement directed at
the console which is interrupted by a control-C can cause an end-of-file
error to be processed, resulting in program termination, before an event
handler can execute. This is a WIN32 restriction, not a bug in VF, and
developers need to be defensive when implementing console event handlers.
For example, the READ statement above could supply an END=label where at
label, a call to Sleep(0) causes the current thread to give up its priority
and might allow a handler to execute.
-
asm files generated by the compiler may not assemble properly. This will
be corrected in a future release.
-
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.
-
Programs that use the ARRAY_VISUALIZER attribute must be linked and run
on systems that have the array visualizer installed. If the array visualizer
is not installed and a link of a program using the ARRAY_VISUALIZER attribute
is attempted, an unresolved reference will be reported. If a program using
the ARRAY_VISUALIZER attribute is run on a system on which the array visualizer
is not installed, the program will crash at run time.
1.5 Visual Fortran Documentation Release Notes for
Version 6
This section describes documentation changes for Version
6.5 and 6.5A Documentation Changes. It also describes:
1.5.1 Version 6.5 and 6.5A Documentation Changes
The following summarizes online documentation changes for Compaq Visual
Fortran Version 6.5
and 6.5A :
-
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.
-
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
-
New intrinsic procedures and other language elements have been added to
the Language Reference.
-
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.
-
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, LRM HTML Files, and Samples.
1.5.2 Version 6.1 Documentation Changes
The following summarizes using HTML Help changes for Version 6.1 and 6.1A:
-
You can now define subsets within HTML Help.
For example, you can define a subset of just Visual Fortran documentation.
This can be used to minimize index or full-text search tasks. To define
a subset, use the Define Subset item in the View menu (see the Installing
and Getting Started online PDF file or printed guide). To choose a subset,
click the drop-down list in the left pane.
-
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.
-
The home pages now have a link to a section that lists new features.
The Visual Fortran and Array Visualizer home pages now have a link
to a section that describes new and changed features. The sections contain
links to the sections where the new features are discussed in detail.
-
HTML Help Viewer is the online documentation viewer
HTML Help Viewer does not appear automatically when you start Developer
Studio. For more information about the HTML Help viewer, see Chapter 5
of Compaq Visual Fortran Installing and Getting Started.
-
In HTML Help Viewer, under the title Visual Fortran, are these titles:
-
Compaq Visual Fortran: contains the Visual Fortran Home Page, Language
Reference, Programmer's Guide, and Error Messages.
The Language Reference describes language topics and includes a section
"A to Z Reference", containing an alphabetic list of all Visual Fortran
intrinsics and routines. The Compaq Visual Fortran Programmer's Guide
contains information about building Fortran applications, compiler options,
debugging, coding for various project types, and other information. Error
Messages includes not only Fortran run-time messages, but also Linker messages,
NMAKE messages, and messages for related tools.
-
Compaq Array Visualizer: contains the Array Visualizer Home Page and documentation
(the full Array Visualizer is provided in the Professional Edition). An
.HLP file for the Array Viewer part of the Array Visualizer is also provided.
-
The title Developer Studio 98 contains the Visual C++ User's Guide (for
Visual Fortran).
1.5.3 Initial Index Use and Use With MSDN
1.5.4 PDF Files, LRM HTML Files, and Samples
-
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 default in the directory Program Files\Microsoft
Visual Studio\Df98.
Most of the Visual Fortran HTML Help documentation is also available
in as PDF files in the Info\Df\Doc\CVF_PDF directory on the Visual Fortran
CD-ROM (see the Readme.htm or Readme.txt file in that directory).
The online Compaq Extended Mathematical Library (CXML) Acrobat PDF
file Cxmlref.pdf are located in the directory x86\df\cxml\doc or Axp\df\cxml\doc
on the Visual Fortran CD-ROM. If requested, the Cxmlref.pdf file is installed
in the ...\Df98\CXML\Doc directory.
The online IMSL Acrobat PDF files are provided in the folder x86\df\imsl\help
or Axp\df\imsl\help on the Visual Fortran CD-ROM. Open the file imsl.pdf
to access all the IMSL PDF files. If requested, the IMSL PDF files are
installed in the ...\Df98\IMSL\Help directory.
Viewing these PDF files requires Adobe Acrobat Reader Version 3.01 (or
later). The Acrobat Reader can be downloaded from the Adobe Web site: http://www.adobe.com
If you do not have Internet access, you can install Acrobat Reader
by double-clicking the exe file in the following directory on the Visual
Fortran CD-ROM for x86 systems:
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.
-
An HTML version of the Compaq Fortran Language Reference Manual
is provided on the Visual Fortran CD-ROM in the folder Info\Df\Doc\Lrm
(open file Dflrm.htm in a browser). This document and the online Language
Reference now show Compaq extensions (blue-green color) to the Fortran
95 standard.
-
Road Map to the Samples and Samples Folders
Visual Fortran samples are provided in directories below:
On the VF CD-ROM: |
info\Df\Samples |
On your disk after installation: |
...\Microsoft Visual 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 installation: |
...\Microsoft Visual Studio\Df98\Samples\Samples.htm |
Array Visualizer samples are provided in directories below:
On the VF CD-ROM: |
x86\Samples
Axp\Samples |
On your disk after installation: |
Program Files\ArrayVisualizer\Samples |
There is a separate Roadmap to the Array Visualizer Samples, samples.htm,
provided in:
On the Array Visualizer CD-ROM: |
x86\Samples\Samples.htm
Axp\Samples\Samples.htm |
On your disk after installation: |
Program Files\ArrayVisualizer\Samples\Samples.htm |
1.6 Visual Fortran Compiler Release Notes
The following changes have been made to VF v6.1A since VF v6.1 shipped:
-
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
-
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.
-
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.
-
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.
The following changes have been made to VF T6.2.T Beta 1 since VF v6.1A
shipped:
-
The following changes have been made to the compiler {from -970-42A1L to
-1011-44A33}:
-
Correct problem with NULL initialization of POINTER/ALLOCATABLE variables.
-
Correct problem with PACK intrinsic where array is array of structures
with an array field with constant subscript/substring values.
-
Improve generated code for SPREAD intrinsic.
-
Improve generated code for array reductions.
-
Improve generated code for UBOUND, LBOUND, SELECTED_INT_KIND, SELECTED_REAL_KIND
when the argument(s) are constants.
-
Improve generated code for SIZEOF when bounds are constants.
-
Eliminate internal compiler error for certain cases of integer (not F90)
POINTER as a module variable.
-
Reduce severity of "variable has not been used" diagnostic to "informational".
-
Improve generated code for MINVAL/MAXVAL.
-
Improve generated code for SIZE(A(:)).
-
Improve generated code for SIZE with array argument that has vector subscripts.
-
Add new INT_PTR_KIND() intrinsic which returns the kind of an integer pointer
(either 4 or 8).
-
Eliminate internal compiler error for use of allocatable array reference
in a variable format expression.
-
Improve generated code for ILEN.
-
Don't do "flawed Pentium check" when /arch specifies Pentium Pro or "higher".
-
An end-of-file condition on READ no longer triggers an ERR= branch - this
is to conform with clearer wording in the recent standard. If an EOF condition
occurs and there is no END= or IOSTAT=, an error is signalled.
-
Add a NUL to the end of non-C character literals. This will not be reflected
in the "length" of the constant.
-
%VAL/%REF now overrides any mechanism specified in an explicit interface.
-
DFOR$PREFETCH, DFOR$PREFETCH_MODIFY, DFOR$PREFETCH_EVICT_NEXT intrinsics
now supported for Alpha processors.
-
Generate correct values for a PARAMETER array whose element values are
computed in an implied DO loop involving indexing into another PARAMETER
array.
-
Correct bad parse of .NE. as record field name.
-
Allow a dummy argument that has an INTENT attribute specified to be specified
in a NAMELIST list.
-
Give standards warning for kind mismatch between source and pad arguments
in RESHAPE.
-
Long source lines are now correctly compiled when standards checking is
requested (warning is still given.)
-
Correct problem with incorrect error given for a particular complex module
renaming case.
-
Allow as an extension a LOGICAL argument to an intrinsic which expects
INTEGER.
-
Correctly parse format which contains ">" characters and a variable format
expression.
The following changes have been made to VF T6.2.U Beta 2 since VF T6.2.T
Beta 1 shipped:
-
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.
-
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 host-association to access the same variable, the second
one gets an inappropriate error.
-
Eliminate internal compiler error for declaration of a derived type array
with an initializer that is an implied-DO array constructor.
-
Eliminate inappropriate error message for initialization expression of
an implied-DO array constructor of length zero.
-
When standards checking is enabled, give one warning, not three, for a
!DEC$ ATTRIBUTES directive.
-
Generate correct code for certain cases involving overloading of the .AND.
and .OR. operators.
-
Fix a case where two NaNs sometimes compared as equal.
-
Eliminate GEM assertion for program unit that declares a COMMON block,
DLLIMPORTs it, but never uses it.
The following changes have been made to VF T6.2.U Beta 2 plus since VF
T6.2.U Beta 2 shipped:
-
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 -fpe0 and -fpe1 in certain situations
where they didn't before.
-
In array constructors with only one implied-DO, and nothing else, avoid
creating an unnecessary temp.
-
Allow SIZEOF(allocatable-array)
-
Allow Variable Format Expression in a character literal when the I/O list
has a subscripted array element.
-
Eliminate compiler abort with incorrect program that names the enclosing
program unit in an ONLY clause.
-
Allow the extension syntax '101'B for a binary literal.
-
Fix problem where $INTEGER directive was not being properly handled.
-
Add support for KIND= keyword in MINLOC/MAXLOC
-
Add suppprt for KIND= keyword in various string intrinsics.
-
Prevent compiler abort for incorrect attempt to pass unsupported datatypes
by value.
-
Properly report invalid declaration EXTERNAL,INTEGER and recover so that
remainder of program is properly parsed.
-
Give standards warning for non-standard placement of NAMELIST.
The following changes have been made to VF v6.5 since VF T6.2.U Beta 2
plus shipped:
-
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.
The following changes have been made to VF v6.5A
since VF v6.5 shipped:
-
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.
-
Elmininate 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.
-
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.
-
Correct problem with module visibility and ONLY.
-
Eliminate internal compiler error for certain use
of POINTER and nested structures.
-
Eliminate inappropriate error about mutiple matching
procedures when generic operators are used.
-
Correct parsing error of certain variable names in
an assignment following a logical IF.
-
Elmininate 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 ofarg mismatch when args 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.
-
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 diag :"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.
-
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.
The following features from Microsoft Fortran PowerStation are not supported
by Visual Fortran:
-
Tab continuation lines that start with other than the digits 1 through
9 {see the FIXMSTAB utility above for a work-around}
-
$DEBUG, $NODEBUG-additional runtime checking
-
DATA statement style initialization in attribute style declaration statements
-
Debug lines (other than D) {see the DLINES sample above for a work-around}
-
$OPTIMIZE-change optimization options
-
Integer array can contain FORMAT
-
Internal files can be any type
-
Listing metacommands - $page, $pagesize, $linesize, $[no]list, $include,
$line
1.7 Visual Fortran RTL Release Notes
The following changes have been made to the Visual Fortran Run-Time Library
(RTL) system v6.1A since VF v6.1 shipped:
-
The following changes have been made to the RTL {-731}:
-
The RTL was fixed to properly support a run-time format that contained
a repeated slash edit descriptor. (bug2288)
-
The global name _proc appeared in both dfport.lib and dfnls.lib causing
an error during linking. This has been corrected. (df2369)
-
In list directed READ's, transfers of complex input with repeat counts
to non-complex I/O list items would repeat the input value one too many
times. (dfb3285)
-
In list directed READ's, transfers of complex input with repeat counts
to complex I/O list items would cause an access violation. (dvf3286)
-
An INDEX backwards returns the wrong value when the search substring is
matching characters (e.g., "AA") and the string being searched contains
at least the same number of matching characters - even though the strings
may not equate. (dfb3332)
-
Fixed bug that was not properly positioning a form='binary' file that had
a BACKSPACE operation performed on it. Allow BACKSPACE on form='binary'
file without having to specify /FPSCOMP:GENERAL. (df2221)
-
A SCAN or VERIFY backwards results is an access violation when passed a
string that contains a character greater than X'7f'. (dfb3342 & dvf9403)
-
The Fortran RTL has been changed so that it now processes the [.m] (the
minimum number of digits) portion of the edit descriptor when w (the width
field) is Zero for I, B, O, and Z editing. (dfb3351 & cvf9587)
-
Support for the new carriage control command line option was added to the
FORTRAN Run-time library.
-
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 wdiths. |
Font Families: |
|
|
QWIN$EXTENDFONT_FF_ROMAN |
Variable stroke width, serifed. Times Roman, Century Schoolbook, etc. |
|
QWIN$EXTENDFONT_FF_SWISS |
Variable stroke width, sans-serifed. Helvetica, Swiss, etc. |
|
QWIN$EXTENDFONT_FF_MODERN |
QuickWin default. Constant stroke width, serifedor sans-serifed. Pica,
Elite, Courier, etc. |
|
QWIN$EXTENDFONT_FF_SCRIPT |
Cursive, etc. |
|
QWIN$EXTENDFONT_FF_DECORATIVE |
Old English, etc. |
Character Sets: |
|
|
QWIN$EXTENDFONT_ANSI_CHARSET |
QuickWin default. |
|
QWIN$EXTENDFONT_OEM_CHARSET |
Use this to get Microsoft LineDraw |
-
GEFILEINFOQQ now detects invalid file specifications and returns FILE$ERROR.
Prior to this fix, an invalid file specification would not be detected,
and FILE$FIRST would be returned.
A memory leak in FULLPATHQQ has been fixed. A temporary allocated block
is now freed on exit from the routine. (dvf8689)
-
In DFOPNGL.F90, the "coords" argument in the fgluTessVertex interface has
been properly defined.
Missing arguments and argument definitions have been added to fgluVertex3i.
A return value data type has been provided for fgluBuild1DMipmaps.
(dvf8799)
-
SETTEXTCOLOR now allows a color index to be between 0 and 255. This fix
was a correction to code which took the index modulo 16, thus forcing the
index to be in the range [0,15]. (dvf8960)
-
A memory leak in the QuickWin function DISPLAYCURSOR has been fixed. (cvf9136)
-
Two memory leaks in SETWINDOCONFIG have been fixed. (dvf8715)
-
The priority of the Windows message handling thread has been increased
to PRIORITY_ABOVE_NORMAL. Without this change, dialogs called from QuickWin
callback routines were slow to come up, and some multithreaded applications
such as the PEEKAPP3 sample would run slowly. (cvf9446, cvf9459)
-
PASSDIRKEYSQQ has been enhanced so that it can be used with either a logical
argument as documented, or with an integer argument. The following choices
are available as arguments for the integer version.
PASS_DIR_FALSE |
Turns off any special handling of direction keys. They are not passed
to the program by GETCHARQQ. |
PASS_DIR_TRUE |
Turn on special handling of direction keys, i.e. they passed to the
program by GETCHARQQ. |
PASS_DIR_INSDEL |
INSERT and DELETE are also passed to the program by GETCHARQQ. |
PASS_DIR_CNTRLC |
Only needed for a QuickWin application but harmless if used with a
Standard Graphics application which already passes Control+C. This value
allows Control+C to be passed to a QuickWin program by GETCHARQQ if the
following is true. The program must have removed the File menu EXIT item
by using DELETEMENUQQ. This value also passes direction keys and INSERT
and DELETE. |
The older logical version of PASSDIRKEYSQQ is still available and still
operates as currently documented. (cvf9446)
-
In Standard Graphics mode, a backspace would sometimes delete only half
a character. This has been fixed by using the correct character size in
the full screen window when deleting. (cvf8933)
-
A problem with the screen size in pixels being too small with a totally
defaulted call to SETWINDOWCONFIG has been fixed. (cvf9664)
-
A memory leak caused by repeated opening and closing of QuickWin windows
has been fixed. (cvf8720)
-
A memory leak caused by repeated use of DISPLAYCURSOR in a QuickWin program
has been fixed. (cvf9424)
-
A problem with CLEARSCREEN($GWINDOW) causing access violations has been
fixed. (dvf7932, dvf8762, dvf9243)
-
If a user sets up his own menu in INITIALSETTINGS using only INSERTMENUQQ
rather than APPENDMENUQQ, then SETWSIZEQQ will not work with child windows
later in the program. This problem has been fixed by ensuring that an initialization
flag is always turned off whether the user or the system sets up the initial
menu. (dvf9780)
-
On the Windows 2000 OS, QuickWin child windows were being incorrectly created
with a variable pitch or proportional default font. This has been fixed,
and child windows now have the old default fixed pitch font which was Courier
New. (dvf9804)
-
A bad range check in DELETEMENUQQ which caused an internal error in QWGUMENU.C
under certain complex conditions has been fixed. Also, a bad index into
the user-menu-callback-routine array which caused a memory access error
has been fixed. (dvf8165)
The following changes have been made to VF T6.2.T Beta 1 since VF v6.1A
shipped:
-
The following changes have been made to the RTL {-745}:
-
QuickWin related changes:
-
A QuickWin child window normally has its system menu close item removed,
and the X buttom on the upper right corner is disabled. When such a window
is closed with the disposition equal to "KEEP", the close menu item is
enabled so the user can remove the window when ready. A bug in releasing
the resources of such windows made it impossible to ever open more than
40 windows, even if the old ones were removed from the screen by using
the system menu close or X button. This problem has now been fixed. (cf2485)
-
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:
-
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.
-
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:
-
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:
-
The following changes have been made to the RTL {-764}:
-
A problem related to formatted direct access reading when more bytes are
required in the I/O list than specified by the record length and the I/O
list item is of type character which is padded out with blanks was fixed.
(cvf11036)
-
The T_POINTS data type in dfwinty.f90 has been corrected so that the X
and Y elements now have an INTEGER(2) data type. (cvf11170)
-
On x86 platforms, with options /fpe:0 and /math_library:check selected,
an interaction between the Fortran rtl default exception handler and the
math library prevented execution of a user defined MATHERRORQQ routine.
This problem has been fixed. (dvf8807)
-
In some cases, console typeahead input to an application would be corrupted.
The underlying cause is a WIN32 bug with reading input from a console.
If a user doing typeahead inputs a few characters before the call to ReadFile()
(or ReadConsole()) is executed, and then types the rest of his input after
(i.e., during) the call, the OS will clobber the input in the receive buffer
by the number of bytes requested in the ReadFile() call. This is true for
number of bytes requested less than or equal to 40. It works as expected
if you ask for at least 41 bytes.
The Fortran rtl was changed at one time to specifically only request
1 byte at a time when reading from stdin. This was done to solve another
problem, multple units sharing a redirected stdin. The solution to the
current typeahead problem is 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)
-
QuickWin related changes:
-
A program termination problem in CVF6.1A has been fixed. In rare instances,
a QuickWin program with open child windows would cause the operating system
to freeze when in the STOP routine. (cvf1084)
-
On Windows 95/98 systems, if a Quickwin program was exited by Ctrl+C or
a close menu item while the sound produced by BEEPQQ was on, the sound
would continue long after the program was terminated. This has been corrected.
(cvf11024)
The following changes have been made to VF v6.5A
since VF v6.5 shipped:
-
The following changes have been made to the RTL {-824}:
-
QuickWin related changes:
-
In certain cases, the QuickWin functions GETWRITEMODE
would return a bad value for the current write mode. This has been corrected.
(cvf11465)
-
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)
-
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)
The following restrictions exist in the current VF RTL:
The following problems still exist in the VF v6.5 RTL:
The following differences in run-time behavior between Visual Fortran and
Microsoft Fortran PowerStation should be noted:
-
The Visual Fortran RTL does not support MBCS characters.
-
The Visual Fortran RTL supports only a variable of the character data type
as a format data specifier (ie.; write(unit,FMT=character_data_type_variable)).
Therefore Integer and Real expressions cannot be used as the format specifier
in an I/O statement.
-
The Visual Fortran RTL supports only the character data type for Internal
files.
-
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.
-
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.
-
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".
-
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".
-
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.
-
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.
-
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.
-
The Visual Fortran RTL does not support the use of negative unit numbers.
This complies with the F90 standard.
-
The Visual Fortran RTL does not support the use of the '*' operator as
the unit number on an INQUIRE statement.
-
The Visual Fortran RTL supports only the record type of 'STREAM' for the
"RECORDTYPE" value when dealing with Fortran Powerstation Unformatted files.
-
The Visual Fortran RTL supports only the record type of 'FIXED' for the
"RECORDTYPE" value when dealing with files opened for Direct access.
-
The Visual Fortran RTL does not support the reading and writing of direct
access records using Sequential I/O statements.
-
The Visual Fortran RTL does not support the writing of direct access formatted
records with a carriage control value of 'FORTRAN'.
-
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.
-
The Visual Fortran RTL does not support the Fortran Powerstation semantics
for the Binary(B), Octal(O) and Hexidecimal(Z) edit descriptors.
-
The Visual Fortran RTL output text when printing namelist elements is different,
but should be equivalent to that of Fortran Powerstation.
-
The Visual Fortran RTL when outputting real numbers will always print a
leading zero(0)(ie.; 0.567) if there is room. This is different than Fortran
Powerstation which does not always print the leading zero(0)(ie.; .567)
if there is room.
-
The Visual Fortran RTL does not support the MATHERRQQ, GETCONTROLFPQQ,
SETCONTROLFPQQ, and GETSTATUSFPQQ routines on non-Intel Platforms(ie.;
Alpha)
-
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.
-
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.
-
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 (ie.;
int-int, int-real, real-int, logical-int, etc). However it fails to place
a separator between an undelimited character string and any other adjacent
data type. For delimited characters they properly add the separator. The
former behavior appears to be a violation of the F90 standard. See section
10.8.2 which states the following: "The form of the values produced is
the same as that required for input, except as noted otherwise. With the
exception of adjacent nondelimited character constants, the values are
separated by ONE or MORE BLANKS...." Thus, there should be no separator
between two nondelimited character constants, but there should be a separator
between a nondelimited character constant and any other adjacent data type.
1.8 Compaq Extended Math Library (CXML) Release Notes
Please read this document before installing or using the Compaq Extended
Math Library (CXML).
This document contains important installation information and release
notes about using CXML with Compaq Visual Fortran. The information in this
document is more up-to-date than the CXML Reference Guide or other associated
documentation. When installing or using CXML, please note the following:
Refer to the following documentation for information about installing and
using CXML:
For Information About: |
See: |
Installation |
"Using Setup to Install Visual Fortran and Related Software" in Compaq
Visual Fortran Installing and Getting Started |
Introductory material and features |
"CXML Libraries" in Compaq Visual Fortran Installing and Getting
Started |
Usage |
"Using the CXML Math Libraries" in Compaq Visual Fortran Programmer's
Guide |
Routine reference |
CXML Reference Guide |
1.9 Developer Studio Release Notes
This section contains the following information:
1.9.1 New Features and Changes to Developer Studio
The following changes have been made to Developer
Studio 6.5A since VF v6.5 shipped:
-
Developer Studio enhancements:
-
Support has been added for new compiler options:
/warn:[no]ignore_loc
/assume:[no]protect_constants
/check:arg_temp_created
-
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.
-
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:
The following changes have been made to Developer Studio 6.5 since VF v6.1A
shipped:
-
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
-
Developer Studio fixes:
-
Fixed a Module Wizard problem concerning a memory leak of input strings.
-
DFCOM module enhancements:
-
Two new rotuines have been added to the DFCOM module:
-
COMIsEqualGUID - tests two GUIDs for equality
-
COMStringFromGUID - returns the string representation of a GUID
-
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.
-
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.
-
DFAUTO module fixes:
The following changes have been made to Developer Studio 6.1A since VF
v6.1 shipped:
-
Developer Studio enhancements:
-
New options in Fortran Options pages:
-
Default Output Carriage Control (/ccdefault)
-
Add CMXL libraries to link (/cxml)
-
Add IMSL libraries to link (/imsl)
-
Allow SEQUENCE types to be padded for alignment (/align:sequence)
-
Developer Studio fixes:
-
Improved Fortran build dependency information.
-
Minor fixes in Fortran Options pages.
-
Fixed Module Wizard problem regarding COM servers create by Visual Basic.
The following changes have been made to Developer Studio 6.1 since VF v6.0B
shipped:
-
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 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.
-
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.
-
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:
-
Enhancements:
-
You can associate a comment with a Fortran Environment when saving it.
-
There is a new icon in the Fortran toolbar. It is named "Manage Saved Fortran
Environment" and it displays your saved Fortran environments. It allows
for selective deletion of saved environments and duplicate scanning. It
also allows you to rename the environment or change the comment.
-
When you create a new project with a Visual Fortran v6.* project wizard,
the Debug configuration contains an additional default compiler switch
setting which aids in debugging. This is /traceback. You may modify your
project settings to remove this entry if desired.
-
Bugs with setting the /transform_loops and /pipeline options from Developer
Studio have been fixed.
The following changes have been made to Developer Studio 6.0 since VF v5.0.A
shipped:
1.9.2 Known Problems, Troubleshooting, and Limitations
Known Problems with using Developer Studio with the
current version of Visual Fortran include:
-
The /WARN:ERRORS Fortran compiler option is not always correctly carried
forward when converting a project from V5 to V6.*. If you have set /WARN:ERRORS
on a V5 project, you should check the setting after Developer Studio has
converted the project to the V6 format and verify that /WARN:ERRORS remains
set.
-
When a Standard Graphics project is opened, the Fortran Libraries category
does not correctly map the /libs:qwins from the Project Settings edit box
to:
Use Fortran Run-Time Libraries: Standard Graphics
|
This is an appearance problem only - /libs:qwins is used when the project
is built. Changing the setting of "Use Fortran Run-Time Libraries:" to
Standard Graphics results in an additional /libs:qwins appearing in the
Project Settings edit box.
-
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:
-
Press Tab as the first character on the new line and then Backspace to
delete it.
-
Select the Tools menu, Options item, Tabs tab. Select "Insert spaces" and
set "Auto Indent" to None.
-
Under Developer Studio, selecting AutoIndent with Tabs replaced by Spaces
for editing Fortran sources (under the Tools->Options->Tabs page) does
not work as expected. Using this combination will result with tabs randomly
being inserted and incorrect indentation.
-
If you install both Visual Fortran v6.* and Visual Fortran v5.0.A, 5.0.B,
5.0.C, or 5.0.D, when you select the "About..." entry in the Help menu,
both versions will display that they are the Visual Fortran v6.* version.
This is a bug in the v5.0 version. Other information in the About box will
identify the version as Developer Studio 97 (which is v5).
Troubleshooting Developer Studio problems:
-
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.
-
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:
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 |
-
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 page for
the target or at least one file"
|
For Fortran-only Developer Studio projects, check 'Generate Source Browse
Information' on the Fortran page, General category. You do not need to
set any C/C++ settings.
-
When using the Source Browser in Developer Studio for browsing Fortran
code, be sure to uncheck the "Case Sensitive" check box at the bottom of
the "Browse" dialog box. This allows the Source Browser to find occurrences
of Fortran symbols regardless of the case used in the sources.
-
If you receive "Unexpected error returned by Array Visualizer" when attempting
to view an array from the debugger, please try the following. From a command
window, run:
REGSVR32 Windows directory\System32\ATL.DLL
|
-
If the files created during a build appear to be out of date, and you are
running Visual Fortran on Windows 95 or Windows 98 operating systems, there
is a possibility that the timestamps on the files created during a build
can be off by up to 2 seconds. With faster machines and performance improvements
in the linker, this can cause the .OBJ files to have a later timestamp
than the result of the linker. This makes some projects appear out-of-date
after a build and thus Visual Fortran may incorrectly indicate that another
link is needed. If you encounter this problem, you can work around it by
adding a pre-link build rule to your project that takes 2 seconds or longer.
Executing a console application that does a "CALL SLEEP(2)" will work fine.
-
If you install Visual Fortran v6.* on a system with Visual C++ v5 please
note the following concerning mixed-language programming with Fortran and
C/C++. You will not be able to perform mixed Fortran v6 and C/C++ v5 programming
in either environment. Note that if you also have Visual Fortran 5.0 installed
on the system, then you can continue to perform mixed Fortran v5 and C/C++
v5 programming in the Visual Studio 97 environment. To perform mixed Fortran
v6 and C/C++ v5 programming, you will need compile your C/C++ code using
Visual C++ v5, and then add the object files to your Visual Fortran v6.*
project. This is done using the normal method of adding files to a project.
The object files generated using Visual C++ v5 will be linked with your
Fortran code. You will be able to debug your mixed language application
from the Visual Fortran v6.* environment.
-
If Developer Studio repeatedly aborts while attempting the same action
with the same project, try moving the project.opt file out of the project
directory. The project.opt file contains local cosmetic settings, which
include information about the local organization and appearance of the
project workspace using your hardware and configuration. A new project.opt
file is created automatically when the workspace is opened and no project.opt
file is found.
NOTE: this problem is frequently encountered when you are using a project
which was created on a system with both Visual C++ and VF installed and
have copied the project (including the project.opt file) to a system with
only VF. The abort typically occurs when you start the debugger. This can
also occur if your system has Visual C++ V5 and VF V5, and you upgrade
to VF V6.*, but do not upgrade to Visual C++ V6 at the same time.
-
If the screen flashes during builds or the wrong code page is used when
debugging a console application, and you are using Windows 95, delete any
of the following files from your computer:
_DEFAULT.PIF, DEFAULT.PIF, CONAGENT.PIF
|
These files were used by Windows 3.x, and are not needed by Windows
95. If they are used while you are debugging a console application, the
country settings associated with the PIF files will be used, and could
result in the wrong code page being loaded. A result of their use on Windows
95 may be screen flashing during a build, if you have specified console
windows to be full screen.
Limitations of Developer Studio:
-
The following limitations exist in Fortran make files exported from Developer
Studio:
-
The "CLEAN" target in the make file does not delete .PDB files created
by the Fortran compiler.
-
NMAKE sometimes compiles the same file twice when the source contains a
MODULE definition which is USEd by other source files in the project.
-
Fortran editor does not support the following Edit menu commands: List
members, Type info, Parameter info, Complete word.
-
Fortran editor syntax coloring has limitations. The syntax coloring in
the Developer Studio editor cannot correctly color all valid Fortran source
programs. In particular, white space is required around keywords in order
for the editor to correctly recognize them. Also, keywords may be highlighted
even when they are not being used as keywords in the source program.
1.10 Compaq Array Visualizer Release Notes
This section provides release notes for Compaq Array Visualizer:
1.10.1 Compaq Array Visualizer Overview and Description of Features
The Array Visualizer is a set of software components that enables you to
visualize array data interactively. Any integer or real type array of rank
1-7 can be viewed using the array visualizer software. The Array Visualizer
also defines a binary file format (.agl) that can be used to save array
data for later analysis. Visual Fortran Standard Edition contains only
the Compaq Array Viewer.
The Array Visualizer consists of:
-
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.
-
Aview Library
The Aview library (aview.lib) is a small set of subroutines that enables
any Fortran application to display array data with Array Viewer. The Aview
library can also be used to directly save array data to an .agl file for
later viewing with the Array Viewer. The AVDef module defines the Fortran
interface for the Aview library. There is also a C language interface defined
in avdef.h. The \Program Files\ArrayVisualizer\Samples directory includes
example programs that use the Aview library.
-
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.
-
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.
-
Developer Studio Enhancements
The Developer Studio debugger now supports the ability to select an
array in the watch window and use the Array Viewer to inspect it. The view
can be updated to observe changes in the array data as the program executes.
1.10.2 Array Visualizer News
These are the following Known Problems and Limitations:
-
Array Viewer:
-
In 256-color mode, the datatip window sometimes reports an incorrect value.
-
HDF:
-
The Array Viewer cannot save files in the HDF format.
-
AView Library
-
Reading an .agl file is not supported.
New Features/Bug Fixes:
-
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.
-
Version 1.5 release:
-
A problem with negative length values in the ROI settings dialog for large
arrays has been fixed.
-
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.
-
Alpha users should be aware that support for Windows NT Alpha systems ends
December 31, 2000. Releases of Visual Fortran after Version 6.5 and Compaq
Array Visualizer 1.5 will no longer support Windows NT Alpha systems.
-
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.
-
Version 1.2 (beta1) release:
-
Printing from Array Viewer has been improved.
-
Axis tickmark labels now always have fixed increments.
-
HDF release 4.1r3 is now used by Array Viewer to display HDF files.
-
A resource leak in the AnimWin32 sample has been fixed.
-
The graph view in Array Viewer (and the Avis2D control) now changes the
cursor to indicate when the view is being change.
-
Axis settings dialog now displays correct axis/dim name.
-
The Array Viewer Options dialog, now has a checkbox that can be used to
turn off OpenGL hardware acceleration and use the generic GDI OpenGL drivers
instead.
-
COMINITIALIZE is no longer required for QuickWin programs that use the
AView library.
-
The Palette Editor now allows spline curves to be used when editing palette
colors.
-
Height Plot graphs now use 1D textures by default.
-
Barchart style for Height Plot graphs has been enhanced and a problem with
printing has been fixed.
-
Logical and Complex arrays can now be viewed with Array Viewer from the
Visual Fortran debugger and can also used as arguments to faglStartWatch,
faglShow, etc.
-
The HDF libraries are no longer provided on the Array Visualizer CD. The
latest version of the HDF libraries can be downloaded from: http://hdf.ncsa.uiuc.edu
.
-
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.
-
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.
-
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.
-
Version 1.0A release::
-
In the 1.0 release, some users experienced long load times and excessive
memory usage when starting the Array Viewer (this only occurred when the
display was set to true color mode). This problem has been fixed for this
release.
-
The Array Viewer about box now displays more system information. When reporting
a problem, please copy and paste the contents of the about box into your
problem report.
-
In Array Viewer you can now copy a bitmap of the Graph View to the Windows
clipboard. See the Array Viewer online help for more information.
-
There's a new command line utility, agltohdf that can be used to convert
agl files to the hdf format.
-
The Array Visualizer documentation now covers the fav routines (Fortran)
and CAViewer class (C++). These functions can be used when you want more
control over how the Array Viewer displays the array data. For example,
you can set the graph type programatically.
1.10.3 Using the Fortran Array Visualizer from the Debugger
The Visual Fortran Professional Edition Debugger supports new functionality
which allows the programmer to view arrays using the Visual Fortran (Developer
Studio) Array Visualizer. This functionality is made available through
a new Visual Studio docking window named the Fortran Arrays window.
The Fortran Arrays window is available when the program is at a breakpoint
in a Fortran source file. The Fortran Arrays window can be displayed using
1 of 3 methods:
-
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.
-
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.
-
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.
-
Left mouse button click on an array name selects the array.
-
Left mouse button double click sends updated array data to the Array Visualizer.
-
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.
-
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.
-
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:
-
When viewing Fortran assumed-size arrays, the last dimension of the array
is not viewable.
-
When viewing Fortran assumed-shape arrays, the lower bounds are always
represented at 1 by default. To change the lower bound used by the Visualizer,
open the ROI Settings dialog (Settings->ROI in the Visualizer menu), and
modify the value(s) displayed in the LowerBound Column.
1.10.4 The Fortran Array Visualizer Uses HDF Libraries
HDF (Hierarchical Data Format) is a library and platform independent data
format for the storage and exchange of scientific data. HDF was developed
by the NCSA which provides information, updates, and library support for
many different platforms (including Compaq Tru64 Unix and OpenVMS) at their
web site: http://hdf.ncsa.uiuc.edu
.
Use of these binary libraries in the Fortran Array Visualizer requires
the following notice:
Copyright Notice and Statement for NCSA Hierarchical Data Format
(HDF) Software Library and Utilities
Copyright 1988-1999 The Board of Trustees of the University of Illinois
All rights reserved.
Contributors: National Center for Supercomputing Applications (NCSA)
at the University of Illinois, Fortner Software, Unidata Program Center
(netCDF), The Independent JPEG Group (JPEG), Jean-loup Gailly and Mark
Adler (gzip), and Digital Equipment Corporation (DEC).
Redistribution and use in source and binary forms, with or without
modification, are permitted for any purpose (including commercial
purposes) provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions, and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions, and the following disclaimer in
the documentation and/or materials provided with the distribution.
3. In addition, redistributions of modified forms of the source or
binary code must carry prominent notices stating that the original
code was changed and the date of the change.
4. All publications or advertising materials mentioning features or
use of this software must acknowledge that it was developed by the
National Center for Supercomputing Applications at the University
of Illinois, and credit the Contributors.
5. Neither the name of the University nor the names of the Contributors
may be used to endorse or promote products derived from this
software without specific prior written permission from the
University or the Contributors.
DISCLAIMER
THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY AND THE CONTRIBUTORS
"AS IS" WITH NO WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED.
In no event shall the University or the Contributors be liable for
any damages suffered by the users arising out of the use of this
software, even if advised of the possibility of such damage.
|
1.11 Fortran Format Editor Release Notes
-
The Format Editor does not support "Variable Format Expressions".
-
The Format Editor does not support "Repeat Specifications" greater than
99.
-
Repeatable edit descriptors can be specified without a field width value.
Since the Format Editor does not know the attributes of the Fortran data
that will be associated with the edit descriptor at run-time, it uses a
default field width based upon the type of the edit descriptor. The following
table lists the repeatable edit descriptors and the default field width
used by the Format Editor for displaying the sample field data.
Edit Descriptor |
Default Width |
A |
10 |
I |
7 |
L |
2 |
B |
8 |
O |
7 |
Z |
8 |
F |
15 |
D |
15 |
E |
15 |
G |
15 |
EN |
15 |
ES |
15 |
1.12 Debugging Related Release Notes
The following changes have been made to the debug support for V6.1A since
V6.1 shipped:
-
Attempting to view a host associated array whose bounds are based on parameters,
e.g. variable 'problem' in the following code:
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).
-
The debugger would previously not display host associated variables that
were also dummy arguments in the containing routine. This has been fixed.
-
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.
-
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(:,:)
|
This bug has been fixed.
-
If the cursor was placed over a multi-byte character in a debugging session
with previous versions of CVF, Developer's Studio would hang. This has
been fixed.
The following changes have been made to the debug support for T6.2 beta
1 since V6.1A shipped:
-
A minor bug which sometimes caused incorrect display of a character variable
with the 'o' (octal) format specifier has been fixed.
-
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:
-
Non-floating-point variables may be viewed as floating-point values in
a watch window using the 'f', 'g', or 'e' format specifiers.
Known problems with the current support:
-
The return value for complex-valued functions does not display properly
if the function has alternate entry points.
-
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.
|