pscad cvf relnotes

Upload: lado-kiladze

Post on 02-Jun-2018

251 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/10/2019 PSCAD CVF relnotes

    1/148

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

    | | | | | | Software Version: Compaq Visual Fortran | Version 6.6 |

    Compaq Computer Corporation Houston, Texas

  • 8/10/2019 PSCAD CVF relnotes

    2/148

    ________________________________________________________________

    2001 Compaq Computer Corporation

    COMPAQ and the Compaq Logo are registered in the U.S. Patent and Trademark Office.

    AlphaGeneration, AlphaServer, DEC Fortran, OpenVMS, and Tru64 UNIX are trademarks of Compaq Information Technologies, L.P.

    Microsoft, NT, Visual Basic, Visual C++, and Windows are either trademarks or registered trademarks of Microsoft Corporation in the United States and other countries. Intel and Pentium are trademarks of Intel Corporation. AMD and Athlon are trademarks of Advanced Micro Devices,

    Inc. Adobe and Acrobat are trademarks of Adobe Systems Incorporated. GLOBEtrotter and FlexLM are trademarks of GLOBEtrotter Software, Inc. ISML and Visual Numerics are trademarks of Visual Numerics, Inc.

    All other product names mentioned herein may be trademarks of their respective companies.

    Confidential computer software. Valid license from Compaq required for possession, use or copying. Consistent with

    FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor's standard commercial license.

    Compaq shall not be liable for technical or editorial errors or omissions contained herein. The information in this document is provided "as is" without warranty of any kind and is subject to change without notice. The warranties for Compaq products are set forth in the express limited warranty statements accompanying such products. Nothing herein should be construed as constituting an additional warranty.

    Major changes since Version 6.5A are indicated in blue color in HTML output and by change bars in the margin in the plain ASCII TXT output.

    This document was prepared using DECdocument, Version 3.3- 1n.

  • 8/10/2019 PSCAD CVF relnotes

    3/148

    _________________________________________________________________

    Contents

    1 Introduction

    1.1 Conventions................................... 1-2 1.2 Overview...................................... 1-2 1.3 General Information........................... 1-2

    2 Installation Notes

    2.1 Version 6.6 Installation Notes................ 2-1 2.2 Installation Changes for Version 6.5 to Typical Installation.......................... 2-3 2.3 Installation Notes Related to Online Documentation................................. 2-4

    3 Version 6 News

    3.1 Version 6.6 News.............................. 3-1 3.2 Version 6.6 Known Problems.................... 3-3 3.3 Version 6 News................................ 3-4 3.3.1 Version 6.5 and 6.5A News................. 3-5 | 3.3.2 Version 6.1A and 6.1 News................. 3-10 3.3.3 Version 6.0 News.......................... 3-15 3.4 Version 6 Notes and Supplemental Information................................... 3-20

    4 Visual Fortran Compiler Release Notes

    4.1 New Features and Changes for Version 6.6...... 4-1

    4.2 New Features and Changes for Version 6.5A..... 4-6 4.3 New Features and Changes for Version 6.5...... 4-11 4.4 New Features and Changes for Version 6.1A..... 4-17 4.5 Features of Microsoft Fortran PowerStation Not Supported..................................... 4-21

    iii

  • 8/10/2019 PSCAD CVF relnotes

    4/148

    5 Visual Fortran RTL Release Notes

    5.1 New Features and Changes for Version 6.6...... 5-1 5.2 Restrictions and Known Problems............... 5-6 5.3 New Features and Changes for Version 6.5A..... 5-7 5.4 New Features and Changes for Version 6.5...... 5-9 5.5 New Features and Changes for Version 6.1A..... 5-14 5.6 Run-Time Differences Between Visual Fortran and Microsoft Fortran PowerStation............ 5-18

    6 Developer Studio Release Notes

    6.1 New Features and Changes for Version 6.6...... 6-1 6.2 Known Problems, Troubleshooting, and Limitations................................... 6-2

    6.3 New Features and Changes for Version 6.5A..... 6-6 6.4 New Features and Changes for Version 6.5...... 6-7 6.5 New Features and Changes for Version 6.1A..... 6-9 6.6 New Features and Changes for Version 6.1 and 6.0........................................... 6-9

    7 Visual Fortran Documentation Release Notes for Version 6

    7.1 Version 6.6 Documentation Changes............. 7-1 7.2 Version 6.5 and 6.5A Documentation Changes.... 7-2 7.3 Version 6.1 Documentation Changes............. 7-2 7.4 PDF Files, HTML Files, and Samples............ 7-4

    8 Debugging Related Release Notes

    8.1 Changes Made to Version 6.6................... 8-1 8.2 Restrictions and Known Problems............... 8-1 8.3 New Features and Changes Made to Version 6.5 and 6.5A...................................... 8-2 8.4 New Features and Changes Made to Version 6.1A.......................................... 8-2

    iv

  • 8/10/2019 PSCAD CVF relnotes

    5/148

    9 Compaq Extended Math Library (CXML) Release Notes

    9.1 Installing and Using CXML..................... 9-2 9.2 CXML New Features............................. 9-2

    10 Compaq Array Visualizer Release Notes

    10.1 New Features and Changes for Version 1.6...... 10-1 10.2 Array Visualizer Known Problems and Limitations................................... 10-2 10.3 New Features and Changes for Versions 1.5A and 1.5........................................... 10-2 10.4 New Features and Changes for Versions 1.1A, 1.1, and 1.0.................................. 10-4 10.5 Compaq Array Visualizer Overview and

    Description of Features....................... 10-6 10.6 Using the Fortran Array Visualizer from the Debugger...................................... 10-8 10.7 The Fortran Array Visualizer Uses HDF Libraries..................................... 10-11

    11 Fortran Format Editor Release Notes

    v

  • 8/10/2019 PSCAD CVF relnotes

    6/148

    1 _________________________________________________________________

    Introduction

    Thank you for choosing Compaq Visual Fortran. This document provides release notes for Compaq Visual Fortran Version 6.6. It also provides key information for earlier releases since Version 6.0.

    Compaq Visual Fortran conforms to the Fortran 95 Standard,

    Fortran 90 Standard, and previous Fortran standards. Compaq Visual Fortran uses the same robust compiler system provided with Compaq Fortran on other platforms for Alpha systems.

    Please visit the Compaq Fortran Web page for a wealth of information about Compaq Visual Fortran and Compaq Fortran, including product descriptions, product updates, frequently asked questions, knowledge base articles, example programs, and other information: http://www.compaq.com/fortran

    It is important that you register your purchase of Compaq Visual Fortran (Visual Fortran) and also keep your

    registration information (such as your e-mail address) up- to-date. Registration entitles you to exclusive benefits, such as the Visual Fortran Newsletter, and provides a record of your serial number should you misplace it. Concurrent license users need to perform a separate registration to obtain the license key, but concurrent license users (like other users) should also register their Visual Fortran purchase. Use the following Internet URL: http://www.compaq.com/fortran/register

    Introduction 1-1

  • 8/10/2019 PSCAD CVF relnotes

    7/148

    1.1 Conventions

    In these release notes:

    o Compaq Visual Fortran is often abbreviated as "VF" or "CVF".

    o Compaq Array Visualizer is often abbreviated as "AV" or "CAV".

    1.2 Overview

    These release notes describe Compaq Visual Fortran Version 6.6 and previous releases back to Version 6.0:

    | o VF v6.6 updates VF v6.5A (which replaced v6.5). There | are no released versions of VF numbered 6.2, 6.3, or | 6.4. | | o VF v6.6 contains Array Visualizer v1.6, which replaces | Array Visualizer v1.5A (which replaced v1.5). There are | no released versions of Array Visualizer numbered 1.2, | 1.3, or 1.4. | | o VF now uses a third-party license management product | called FlexLM to manage concurrent-use licenses. If you | are licensed as a single-use user, this has no effect on | your license and you will see no changes. Concurrent use

    | license users should refer to the separate, additional | instructions on how to use FlexLM in the appropriate | chapter of the Compaq Visual Fortran Installing and | Getting Started guide.

    o Alpha users should be aware that support for Windows NT Alpha systems ended as of December 31, 2000. Releases of Visual Fortran after Version 6.5A will no longer support Windows NT Alpha systems.

    1.3 General Information

    | Compaq Visual Fortran Version 6.6 is an enhancement of VF

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

    1-2 Introduction

  • 8/10/2019 PSCAD CVF relnotes

    8/148

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

    Compaq Visual Fortran v6.6 is available in two separate products:

    o Compaq Visual Fortran Standard Edition

    The VF Standard Edition contains the following components to support Intel processors running Windows/NT (including Windows 2000) or Windows 9*:

    - VF compiler

    - Libraries

    - Compaq Extended Math Library (CXML-a set of mathematical subprograms covering, for example,

    Basic Linear Algebra, Linear System and Eigenproblem Solvers, and Sparse Linear System Solvers)

    - Developer Studio

    o Compaq Visual Fortran Professional Edition

    The VF Professional Edition contains all the Standard Edition features (VF compiler, libraries, CXML, and | Developer Studio) plus the following: | | - IMSL mathematics and statistical libraries | |

    - Compaq Array Visualizer Version 1.6 | | - Fortran COM Server Wizard |

    This product requires that you be running Windows 2000, | Windows NT Version 4.0 with Service Pack 3, Windows Me, | Windows 98, or Windows 95. |

    Introduction 1-3

  • 8/10/2019 PSCAD CVF relnotes

    9/148

    On Windows NT systems, Service Pack 3 will be installed by the Visual Fortran installation if required. VF online documentation also requires Microsoft Internet Explorer V4, which will be installed by the Visual Fortran installation if required (see Section 2.3).

    | VF v6.6 contains Microsoft Developer Studio 98 (Developer | Studio v6.0) and is not compatible with the Developer | Studio on VF v5.0A (Standard and Professional) and | Microsoft Visual C++ v5.0. VF v6.6 can co-exist on the | same system with Developer Studio V5 products.

    VF v6.6 contains bug fixes, performance improvements, extensions to improve compatibility with Microsoft Fortran PowerStation, and additional minor features.

    | One important new feature in v6.6 is support for 64-bit | integer data {INTEGER (KIND=8) and LOGICAL (KIND=8)} (new | features are described in Chapter 3).

    1-4 Introduction

  • 8/10/2019 PSCAD CVF relnotes

    10/148

    2 _________________________________________________________________

    Installation Notes

    This chapter presents important points to consider and actions to take to ensure a successful installation of Compaq Visual Fortran:

    o Section 2.1, Version 6.6 Installation Notes

    o Section 2.2, Installation Changes for Version 6.5 to Typical Installation

    o Section 2.3, Installation Notes Related to Online Documentation

    2.1 Version 6.6 Installation Notes

    The v6.6 installation procedure is the same as for v6.5. | Please refer to the Compaq Fortran Installing and Getting | Started guide for installation instructions (see the | printed book or online file Cvf_gs.pdf). |

    The following installation notes apply to the current version of Visual Fortran:

    o If you attempt to install Visual Fortran v6.* using any of the methods described in "Installing and Getting Started - Using Setup to Install Visual Fortran", and SETUP.EXE in the root directory fails to run, on x86 systems, run: \X86\SETUPX86.EXE

    This runs the same installation procedure as SETUP.EXE in the root directory.

    o Visual Fortran v6.* and Microsoft Visual C++ v6.0 are

    engineered to co-exist in Microsoft Developer Studio. However, the versions of all products MUST match or you will receive version mismatch errors when starting Developer Studio. An example of the error message you would receive is:

    Installation Notes 2-1

  • 8/10/2019 PSCAD CVF relnotes

    11/148

    Cannot load package 'xxxxxx' because its internal version number, or the internal version number of one of it components, doesnot match the version of the Developer Studio shell.

    o If you install Visual C++ V6.0 after VF v6.*, the Visual C++ installation does not update the Include and Library paths used by Developer Studio to include the MFC and ATL paths. You may add these yourself with the following method:

    1. Select the Options... entry from the Developer Studio Tools menu.

    2. Select the Directories tab.

    3. In the "Show directories for:" combo box, select the type of path you wish to modify (that is, "Include files").

    4. Double-click on the last (empty) entry, and use the "..." button to browse for the "MFC\INCLUDE" and "ATL\INCLUDE" directories and add them to the list.

    5. Use a similar procedure to add the "MFC\LIB" directory to the "Library Files" list.

    o The CVF and CAV installation procedures register a number of DLLs and OCXs. CVF registers DFDLG100.DLL, COMCAT.DLL, SHLWAPI.DLL, WININET.DLL, HHCTRL.OCX, ITIRCL.DLL, and ITSS.DLL in the windows\system directory. CAV registers ATL.DLL, HHCTRL.OCX, ITIRCL.DLL, and ITSS.DLL in the windows\system directory. CAV registers AVIS2D.OCX and AVISGRID.OCX in the ArrayVisualizer\Bin directory. Occasionally, these files are not properly registered by the installation or become unregistered. To re-register any of these files, use the Microsoft Register Server utility (regsvr32.exe) that can be found in your windows\system directory. The syntax for using Regsvr32.exe is as follows: Regsvr32

    [/u] [/s] file-name

    where:

    /u - Unregisters the file based on the argument /s - Registers the file in silent mode, suppressing all messages

    2-2 Installation Notes

  • 8/10/2019 PSCAD CVF relnotes

    12/148

  • 8/10/2019 PSCAD CVF relnotes

    13/148

    file-name- The complete path and file to be registered or unregistered

    Regsvr32 displays a message box that indicates whether the registration was successful, unless you specify the /s option.

    o If you receive a message box on running Developer Studio or the Array Viewer that says: "The ordinal nnnn could not be located in the dynamic link library xxxx"

    Search for the file "xxxx" on your system; most often it will be in your Windows system directory. If the file has the "Read-only" attribute set, remove the attribute and reinstall VF and/or the Array Viewer.

    o When uninstalling v5.0 or v6.*, you may see a message box with the title "Remove Shared File?". We recommend that you select the "No to all" button unless you are certain that you will not need the file(s). Some of these files are needed to run VF applications and they take up only a small amount of disk space.

    o If you uninstall v5.0 after installing v6.*, you need to reinstall v6.* with the same options as the current installation in order to reset registry entries that are removed by the v5.0 uninstall.

    o If you install multiple Developer Studio products and later uninstall one or more of them, you may need to re-install the others.

    2.2 Installation Changes for Version 6.5 to Typical Installation

    The following installation change occurred in Version 6.5:

    o The typical installation of Compaq Visual Fortran (CVF) now includes the Microsoft SDK documentation. This adds 110MB to the disk usage for the typical installation.

    Installation Notes 2-3

  • 8/10/2019 PSCAD CVF relnotes

    14/148

    2.3 Installation Notes Related to Online Documentation

    The following installation notes apply to installing the HTML Help online documentation:

    o Internet Explorer is required to read HTML Help Viewer online documentation. When you install Visual Fortran, the setup installation procedure checks to determine whether a certain version of Internet Explorer is installed. If it detects that Internet Explorer is not installed or an older version is installed, it asks that you install Internet Explorer. If you do not install Internet Explorer at this time, you will not be able to view Visual Fortran online documentation in HTML Help Viewer, and selecting many of the entries in

    the Developer Studio Help menu will result in an error message dialog box being displayed.

    If the installation program does not ask and you want to install Microsoft Internet Explorer 4.0 SP1:

    1. On x86 systems, from the Visual Fortran 6.6 CD-ROM, run: \X86\SUPPORT\IE4\{WINNT | WIN95\IE4SETUP.EXE

    If you install Internet Explorer later, you will also need to reinstall Visual Fortran to view the HTML Help Viewer online documentation.

    Visual Fortran online documentation requires the minimal set of Internet Explorer components; for example, it does not require the Active Desktop.

    Testing with Internet Explorer Version 5 shows that it can be used with Visual Fortran HTML Help Viewer online documentation.

    For information about Internet Explorer installation issues, please:

    1. In a Web browser, open the URL: http://support.microsoft.com/support

    2. Click Products (select Internet Explorer)

    3. Either click the displayed links or click Search Support to locate the desired information.

    o Initial index use and disk space requirements for HTML Help Viewer

    2-4 Installation Notes

  • 8/10/2019 PSCAD CVF relnotes

    15/148

  • 8/10/2019 PSCAD CVF relnotes

    16/148

    After you install Visual Fortran, you can run the HTML Help Viewer to view the online documentation. If you install Visual Fortran using the "Run From CD-ROM" option, the first time you access the index (such as clicking the index tab, pressing F1, or if you start HTML Help Viewer by clicking Index in the Help menu), a "building index for first use" message box appears. There will be a delay of 10-20 minutes while HTML Help Viewer creates a df60.chw index file in the folder ...\Microsoft Visual Studio\df98\doc. The df60.chw file is approximately 20 MB.

    In addition to disk space requirements for installing Visual Fortran in "Run From CD-ROM" mode, the disk where Visual Fortran is installed must have enough room after

    installation for building the df60.chw file, if you intend to use the documentation index.

    There also needs to be at least 30MB free on the disk where the windows temp directory resides while the df60.chw file is being built.

    o If you also install the MSDN (or Visual Studio) documentation

    If you also install the MSDN documentation from CD-ROM, be aware that you must switch between displaying the MSDN documentation collection and the Visual Fortran

    documentation collection in HTML Help Viewer. With Windows 2000 systems, be aware that your account needs at least Power User privilege to change collections. To change the collection of titles displayed in HTML Help:

    1. Start the visual development environment (Start-> Compaq Visual Fortran->Developer Studio)

    2. In the Tools menu, click Options.

    3. Scroll to the Help System tab

    4. In the Preferred Collection box, select either the

    Visual Fortran or the MSDN Library as your current collection.

    5. Click OK. The collection you just selected is now your current collection.

    Installation Notes 2-5

  • 8/10/2019 PSCAD CVF relnotes

    17/148

    Regardless of the collection currently selected, you can display the Visual Fortran HTML Help by selecting "Online documentation" in the Visual Fortran program folder.

    2-6 Installation Notes

  • 8/10/2019 PSCAD CVF relnotes

    18/148

    3 _________________________________________________________________

    Version 6 News

    This chapter describes Version 6.6 news, notes, and known problems. It also provides news for previous releases and supplemental notes.

    o Section 3.1, Version 6.6 News

    o Section 3.2, Version 6.6 Known Problems

    o Section 3.3, Version 6 News

    o Section 3.4, Version 6 Notes and Supplemental Information

    3.1 Version 6.6 News

    The following are new and changed features for v6.6: | | o INTEGER (KIND=8) and LOGICAL (KIND=8) are now recognized | to support 64-bit signed integers. |

    | o When the /fast command line option is present, if any | of the forms of /stand are present, /fast will not set | /align=dcommons and /align=sequence. | | o The command line option /stand now defaults to F95 not | F90. | | o New compiler option keyword /fpscomp:[no]ldio_spacing | | The Fortran 95 Standard requires that there be a blank | after a numeric value before a character value in list- | directed output. Microsoft PowerStation did not do |

    this; nor did VF v6.5A. As of v6.6, VF will obey the | F95 Standard by default {/FPSCOMP:NOLDIO_SPACING}. If | /FPSCOMP:LDIO_SPACING is specified, VF will produce | the old, non-standard output. /FPSCOMP:GENERAL will set | /FPSCOMP:LDIO_SPACING. |

    Version 6 News 3-1

  • 8/10/2019 PSCAD CVF relnotes

    19/148

    | o New compiler option /annotations:keyword adds | information about the optimizations performed when you | request a listing file. | | o New compiler option /integer_size now supports a value | of 64 to allow INTEGER and LOGICAL (default kind) | declarations to be treated as 8 bytes long (KIND=8). | | o The compiler option /ccdefault:default now allows other | options, such as /vms, to set the default carriage | control. | | o There are new versions of the module header files | DFWINTY.F90 and DFWIN.F90 (and its component files). | These new module headers are designed to work in both

    | the 32-bit and 64-bit environments (see Section 5.1). | | o A new version of the Compaq Extended Math Library | (CXML) is included with Visual Fortran Version 6.6, CXML | Version 5.0. For detailed information, see Chapter 9. | | o The types of Visual Fortran run-time libraries displayed | in the visual development environment Fortran tab | (Project menu, Settings dialog box) more closely | match the run-time libraries available in Visual C++ | (C/C++ tab). Also, the types of run-time libraries | linked against while linking against debug versions | of DLL libraries have changed, as described in online

    | Programmer's Guide, Mixed-Language Programming chapter | section Visual Fortran/Visual C++ Mixed-Language | Programs. | | o The following new graphics functions let you draw | Bezier curves (based on fitting a cubic curve to four | points): POLYBEZIER and POLYBEZIER_W, POLYBEZIERTO and | POLYBEZIERTO_W | | o The intrinsics COUNT and ZEXT have been extended to | accept an optional KIND argument to specify the kind | type parameter of the result. |

    | o The /arch:xxx and /tune:xxx command line options now | accept the following new keywords for "xxx": | | - PN1 is the same as the old P5 keyword | | - PN2 is the same as the old P6 keyword | | - PN3 is the same as the old P6P keyword

    3-2 Version 6 News

  • 8/10/2019 PSCAD CVF relnotes

    20/148

  • 8/10/2019 PSCAD CVF relnotes

    21/148

    - PN4 is the same as the new P7 keyword | | VF still accepts the old spellings of the keywords for | "xxx". | | o A derived-type variable which is data initialized via | default initialization of any of its components will no | longer be saved by default. A RECORD variable which is | data initialized via default initialization specified | in its STRUCTURE declaration will no longer be saved by | default. | | o fpp supports the macros __DATE__ and __FILE__. When | fpp is told to expand macros using "-fpp:-m", these | expand into character literals that give the name of the |

    source file being processed and the current date/time | respectively. | | character*20 file | character*20 date | file = __FILE__ | date = __DATE__ | type *, file, date | end | | Do not put __DATE__ or __FILE__ inside quotes in the | source. | |

    3.2 Version 6.6 Known Problems

    The following known problems remain in VF: | | o Control C handlers | | Problems have been reported with implementing console | event handlers (e.g., control C handlers) in programs | built with Visual Fortran. The symptom is usually that | the handler is seemingly never invoked. This is due | to the implementation of console event handling on | WIN32 platforms. In response to a Control-C event, the | operating system will create a new thread to execute the |

    handler in. In order for the new thread to execute, it | must obtain priority. If the currently executing thread | does not relinquish its priority, it is possible that | program execution will terminate before the console | event handler ever executes. For example, a READ | statement directed at the console which is interrupted |

    Version 6 News 3-3

  • 8/10/2019 PSCAD CVF relnotes

    22/148

    | by a control-C can cause an end-of-file error to be | processed, resulting in program termination, before an | event handler can execute. This is a WIN32 restriction, | not a bug in VF, and developers need to be defensive | when implementing console event handlers. For example, | the READ statement above could supply an END=label where | at label, a call to Sleep(0) causes the current thread | to give up its priority and might allow a handler to | execute. | | o asm files generated by the compiler may not assemble | properly. This will be corrected in a future release. | | o There is a known interaction problem with window sizing | when using the program TOPDESK (from the Microsoft

    | resource kit) and Developer Studio. The problem can be | somewhat avoided by not maximizing the Developer Studio | Window. | | o Programs that use the ARRAY_VISUALIZER attribute must be | linked and run on systems that have the Array Visualizer | installed. If the array visualizer is not installed and | a link of a program using the ARRAY_VISUALIZER attribute | is attempted, an unresolved reference will be reported. | If a program using the ARRAY_VISUALIZER attribute is | run on a system on which the array visualizer is not | installed, the program will crash at run time. |

    3.3 Version 6 News

    This section describes news and notes for previous releases, from Versions 6.0 through 6.5A:

    o Section 3.3.1, Version 6.5 and 6.5A News

    o Section 3.3.2, Version 6.1A and 6.1 News

    o Section 3.3.3, Version 6.0 News

    3-4 Version 6 News

  • 8/10/2019 PSCAD CVF relnotes

    23/148

    3.3.1 Version 6.5 and 6.5A News | | Version 6.5A news: | | o The "unused" variable message is informational, not a | warning, as of 6.5A. | | o The Fortran COM Server Wizard now allows you to select | an out-of-process (.EXE) COM server. Users now have a | choice of the type of server: either a DLL (in-process) | COM server or an EXE (out-of-process) COM server. | | o New compiler options and their descriptions: | | - /assume:[no]protect_constants |

    | This option specifies whether constant actual | arguments can be changed. By default, actual | arguments that are constants are read-only | (/assume:protect_constants). To allow changes | to actual arguments that are constants, specify | /assume:noprotect_constants. | | - /check:[no]arg_temp_created | | Requests that a run-time informational message appear | if actual arguments are copied into temporary storage | before routine calls. Specifying /check:noarg_temp_ |

    created (the default) does not generate the extra | code needed to display a message run-time when this | condition occurs. | | - /warn:[no]ignore_loc | | Requests that the compiler issues warnings when | %LOC is stripped from an argument. The default is | /warn:noignore_loc (does not issue a warning for this | condition). | | o The hardware selected by the /ARCH command line option | is the basis for the /TUNE option, i.e., you cannot use |

    /TUNE to tune generated code for an architecture older | than the one selected by /ARCH. | | o New data ATTRIBUTES directive keywords are now | available: | | ALLOW_NULL, DECORATE, IGNORE_LOC, and NOMIXED_STR_LEN_ | ARG |

    Version 6 News 3-5

  • 8/10/2019 PSCAD CVF relnotes

    24/148

  • 8/10/2019 PSCAD CVF relnotes

    25/148

    | o VF Reporter running on the Windows Me operating system | will display errors but will run. The initial error | message displayed is: | | The file named "C:\Program Files\Microsoft | Visual Studio\DF98\VFRPORTR\DFWHAT.TXT" | THAT SHOULD HAVE BEEN CREATED BY: | | The second error displayed is: | | The file named "C:\Program Files\Microsoft Visual | Studio\DF98\VFRPORTR\GLINFO.TXT" THAT SHOULD HAVE BEEN | CREATED BY "C:\Program Files\Microsoft | Visual Studio\DF98\BIN\df.exe /what > dfwhat.txt" was not found

    | | The error occurs because Windows Me doesn't support | Autoexec.bat where VF traditionally sets the environment | variables for that family of Windows operating systems. | | A version of VF Reporter that fixes this | problem will be available from the VF web page: | http://www.compaq.com/fortran | | o For details about changes for Version 6.5A, see the | following sections. For example: | | - For a list of compiler changes, see Chapter 4, Visual

    | Fortran Compiler Release Notes. | | - For a list of run-time library changes, see | Chapter 5, Visual Fortran RTL Release Notes. | | - For a list of Developer Studio changes, see | Chapter 6, Developer Studio Release Notes. | Version 6.5 news:

    o Compiling using .MOD files is now much faster. We have made the .MOD files smaller and faster to search.

    ________________________ Note ________________________

    All .MOD files created by CVF T6.2 Beta 1 or Beta 2 must be recompiled with CVF v6.5 or later in order to work properly.

    ______________________________________________________

    o VF v6.5 introduces the Fortran COM Server Wizard.

  • 8/10/2019 PSCAD CVF relnotes

    26/148

    3-6 Version 6 News

  • 8/10/2019 PSCAD CVF relnotes

    27/148

  • 8/10/2019 PSCAD CVF relnotes

    28/148

    o New intrinsic procedures include:

    INT_PTR_KIND() - returns the INTEGER KIND that holds an address POPCNT, POPPAR, LEADZ and TRAILZ intrinsics on X86 processors Optional KIND argument for LEN, SHAPE, SIZE, LBOUND and UBOUND DFOR$PREFETCH, DFOR$PREFETCH_MODIFY, DFOR$PREFETCH_ EVICT_NEXT on Alpha processors

    o DLLEXPORT and DLLIMPORT of Variables

    In previous versions of Visual Fortran, the only objects which could have the DLLEXPORT or DLLIMPORT

    attribute were procedures and COMMON blocks. VF can now export/import module variables and arrays.

    o Support for reading nondelimited character strings as input for character NAMELIST items has been added.

    o New environment variable FORT_CONVERT_ext acts like environment variable FORT_CONVERT.ext.

    o New exception handling routines are CLEARSTATUSFPQQ and GETEXCEPTIONPTRSQQ.

    o New Visual Fortran Samples (described in Roadmap to the

    Visual Fortran Samples) are provided, including:

    o COM sample: Adder

    o DIALOG sample: Celsicon

    o ExceptionHandling samples: ClearFP, Cslexp2, Cslexp4, GetEptrs, Vbvf1, and Winexcp1

    o Isovar sample (ISO varying strings)

    o Mixed-language samples, new samples for MASM and Delphi

    o QuickWin samples: Conapp, Dirkeys4, PostMini, and Resize

    o Configuring Concurrent License Wait Time

    3-8 Version 6 News

  • 8/10/2019 PSCAD CVF relnotes

    29/148

    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.

    o Visual Studio 6.0 Service Pack 4

    After installing Service Pack 4 of Visual Studio 6.0, linking DLL libraries may report: error LNK2001: unresolved external symbol __imp___fpieee_flt

    For a resolution to this problem, see the following Knowledge Base article on the Visual Fortran web site: http://www.compaq.com/fortran/kb/q1036.html

  • 8/10/2019 PSCAD CVF relnotes

    30/148

    Version 6 News 3-9

  • 8/10/2019 PSCAD CVF relnotes

    31/148

    o The directories \X86\USUPPORT and \AXP\USUPPORT on the CD-ROM contain the \RUNTIME subdirectory that contains the redistributable files for CVF v6.5 and CAV 1.5:

    ...\RUNTIME\VFRUN650I.EXE and ...\RUNTIME\VFRUN650A.EXE

    This self-installing executable kit installs the run-time components needed to run Visual Fortran applications on x86 and AXP (Alpha) systems respectively which do not have Visual Fortran installed.

    ...\RUNTIME\DAV-X86-150.EXE and ...\RUNTIME\DAV-AXP-150.EXE

    This demonstration package includes the Array Viewer, Avis2D ActiveX control, and a sample file. The Array Viewer Demo can display AGL (Array Visualizer's native format) files written by an Array Visualizer user; it can also display HDF files. The package, including the ActiveX controls, is also used when distributing applications which make use of the Avis2D control to users who do not have the full Array Visualizer kit installed.

    3.3.2 Version 6.1A and 6.1 News

    The following Version 6.1A and 6.1 news should also be

    noted:

    o New in v6.1A are the command line options /ccdefault, /cxml, /imsl, and /align:sequence; array constructors may have scalar CHARACTER source elements of varying size. See the online documentation for more information.

    o VF v6.1 Professional CD contains v6.0 IMSL libraries

    The VF v6.1 Professional kit contains the IMSL libraries from the VF v6.0 Professional kit. The VF v6.1 Getting Started and Programmers Guide document new v6.1 IMSL libraries that will be made available via a web-

    downloadable patch kit soon after VF v6.1 ships.

    o NO_ARG_CHECK attribute

    3-10 Version 6 News

  • 8/10/2019 PSCAD CVF relnotes

    32/148

    The NO_ARG_CHECK attribute specifies that type and shape matching rules related to explicit interfaces are to be ignored. This permits the construction of an INTERFACE block for an external procedure or a module procedure that accepts an argument of any type or shape. See the online documentation for more information.

    Compaq recommends that arguments declared as type CHARACTER not be given the NO_ARG_CHECK attribute, as argument passing inconsistencies may otherwise result.

    o Predefined symbols to VF and FPP

    The VF driver executes FPP and the VF compiler with a number of predefined symbols:

    ________________________________________________________ Switch/Symbol_____________Why?__________________________

    -D_WIN32=1 (both Because this is Win32 compiler and FPP)

    -D_MT=1 If compiling threaded

    -D_X86_=1 (both compiler If Intel and FPP)

    -D_WIN95=1 If Windows 95

    -D_WIN98=1 If Windows 98

    -D_ALPHA_=1 (both If Alpha compiler and FPP)

    -D_MSFORTRAN_=401 If /fpscomp:all or /fpscomp:symbols

    -D_DLL=1 If linking against a DLL

    /D__LANGUAGE_FORTRAN______To_FPP_only___________________

    The user may define additional symbols, such as -D_ BUILDING_DLL=1 to mean that the compilation is building a DLL.

    o A new item has been added to the Developer Studio File menu, "Print Colorized Fortran...". This item prints a Fortran source file in color. It uses the FSC utility, described elsewhere in the release notes, to create an HTML file with the coloring information. It then instructs the application on your system that handles

  • 8/10/2019 PSCAD CVF relnotes

    33/148

    HTML files to print the file. This has been tested with the Internet Explorer and Netscape browsers. If

    Version 6 News 3-11

  • 8/10/2019 PSCAD CVF relnotes

    34/148

    you encounter a problem using the "Print Colorized Fortran..." item, please use the FSC utility directly. Note that "Print Colorized Fortran..." creates the HTML file in your TEMP directory, and does not delete the file since it does not know when the printing has completed. You may delete these files to free up disk space.

    o FSC.EXE has been added to the kit. This program takes an .F90 or .FOR source and produces a HTML version that is colorized per the current Developer Studio Color settings in the registry. It has default colors that are used if the current registry settings are not available. The resultant HTML file may be printed or viewed with your favorite browser. This utility may be invoked from

    a command prompt (use FSC -? or FSC /h for help) or from within the IDE.

    o VFRUN provides a self-extracting executable file that installs Visual Fortran run-time components on the target system. These run-time components include DLLs and other files, as described in Compaq Visual Fortran Installing and Getting Started in "Redistributing Visual Fortran Files".

    VFRUN files are provided for different Visual Fortran releases and for x86 and Alpha systems. For example, for Visual Fortran v6.1, VFRUN61i.exe is provided for x86

    systems and VFRUN61a.exe is provided for Alpha systems.

    o The Fortran compiler now sets "/arch:host /tune:host" when the user specifies "/fast". This generates optimal code for the computer architecture on which the compiler is running. However that code may run slowly or not at all on another version of the computer architecture.

    o Two new Fortran source directives for controlling optimizations are now available: cDEC$ IVDEP and cDEC$ UNROLL. See the online Compaq Visual Fortran Programmer's Guide for a complete description.

    o New functionality has been added to the Dialog Procedures:

    - You may use ActiveX Controls in your dialog boxes. See "Using ActiveX Controls" in the "Using

    3-12 Version 6 News

  • 8/10/2019 PSCAD CVF relnotes

    35/148

    Dialogs" section of the online Compaq Visual Fortran Programmer's Guide.

    - Edit Box control enhancements:

    * You may now use multiline edit controls.

    * The maximum size restriction of 256 characters has been removed.

    * The Edit Box control supports two additional integer indexes:

    DLG_TEXTLENGTH - Sets or Gets the current length of the text in the edit box.

    DLG_POSITION - Sets or Gets the current text cursor position in the edit box.

    - New Routines:

    * DlgSetTitle - Sets the title of the dialog box.

    * DlgFlush - Updates the display of the dialog box. Useful when changing the dialog box outside of a dialog callback.

    * DlgModalWithParent - Allows you to specify the parent window of a modal dialog box. Useful in

    an SDI or MDI Windows application that uses modal dialog boxes.

    * DlgIsDlgMessageWithDlg - Allows you to specify which dialog box to check. Useful when the dialog box was created in a DLL.

    - The dialog box supports a new callback index, DLG_ SIZECHANGE. This callback is invoked when the size of the dialog box changes.

    There is one known problem: An event method which passes a DOUBLE parameter by value does not work. This is

    because of a problem in a system DLL.

    o New SPORT_xxx (Serial Port) routines have been added

    The SPORT_xxx collection of routines is designed to help the Fortran programmer do basic input and output to serial ports. The programming model is much the same as a normal file except the user does a connect/release instead of an open/close. Two types of read and write operations are provided. One set reads and writes

  • 8/10/2019 PSCAD CVF relnotes

    36/148

    Version 6 News 3-13

  • 8/10/2019 PSCAD CVF relnotes

    37/148

    arbitrary data from/to the port while the other set reads and writes line terminated data. Calls are provided to set basic port parameters such as baud rate, stop bits, timeouts, etc. Additionally, a call is provided to return the WIN32 handle to the port so that raw WIN32 APIs may be used to implement additional needs of the programmer.

    The documentation overview can be found in Programmers Guide-> Files, Devices, and I/O Hardware->I/O Hardware- >Using the Serial I/O Port Routines. The detail description of the routines can be found in Language Reference->A to Z Reference->S.

    o The new subroutine TRACEBACKQQ() allows you to initiate

    a stack trace in your program whenever you like. The input arguments allow you to specify your own message text to head the output and other options as well. See the online documentation for more info. (Programmer's Guide->Handling Run-Time Errors->Using Traceback information, and the Language Reference Manual A to Z Reference->T to Z->TRACEBACKQQ.)

    o Greater Access to Windows APIs

    DFWINTY.F90 has 980 new derived types and 4070 new Fortran parameter constants added. These new items represent the difference between Microsoft Visual C++

    4 header files and Visual C++ 6 header files.

    USER32.F90 has 72 new interfaces to routines in USER32.LIB. These new routine interfaces again represent the difference between Microsoft Visual C++ 4 header files and Microsoft Visual C++ 6 header files.

    KERNEL32.f90 has 50 new interfaces to routines in KERNEL32.LIB.

    GDI32.F90 has 25 new interfaces to routines in GDI32.LIB.

    ADVAPI32.F90 has 50 new interfaces to routines in ADVAPI32.LIB.

    In all these files, the new material is under conditional compilation so that defining "__DO_NOT_ INCLUDE_VC6_ITEMS" will remove the new items. Search for the string above to locate the new items which will be found towards the end of the file.

    3-14 Version 6 News

  • 8/10/2019 PSCAD CVF relnotes

    38/148

  • 8/10/2019 PSCAD CVF relnotes

    39/148

    The files are shipped without the string being defined, and the module files will contain the new items.

    o VF puts literals into read-only memory so storing into a dummy argument that has a constant as its associated actual argument will result in an access violation and program termination:

    call f(0) ... subroutine f(i) i=1 ! this will die

    o v6.1 for Intel contains all of the applicable updated files from the Microsoft Visual Studio 6.0 Service Pack

    3. Therefore, V6.1 Intel users do not need to install Visual Studio 6.0 Service Pack 3 unless you have other Visual Studio products. v6.1 for Alpha contains all of the applicable updated files from the Microsoft Visual Studio 6.0 Service Pack 2.

    3.3.3 Version 6.0 News

    The following v6.0 news should be noted:

    o With the addition of minimal width format field editing in this release, VF now fully supports the Fortran 95 standard ISO IEC 1539-1:1997.

    o Effective with this release, the v4.0 Microsoft Fortran 90 compiler for Intel is no longer supplied on the Visual Fortran kit.

    o Support for traceback is included with this VF kit.

    When an application aborts with a severe error, the Fortran runtime will now, by default, display its usual error message plus a hex dump of the call stack at the time of the error. If the executable image includes traceback information, the runtime will also provide correlation of program counter values to the source

    file, routine name and line number. The inclusion of traceback info is under the control of a new compiler option, /traceback. The /traceback option is on by default in IDE Debug configurations and off by default in IDE Release configurations.

    Version 6 News 3-15

  • 8/10/2019 PSCAD CVF relnotes

    40/148

    If you do not want to see traceback output, you can disable it with a new environment variable, FOR_DISABLE_ STACK_TRACE. Set the environment variable to true to turn off the output. You will still get the standard runtime error message telling you what happened if you disable stack trace output.

    Since the expected correlation information can only be generated by the Fortran compiler, mixed language applications will only see correlation for that part of the application written in Fortran. You'll still get hex PCs for anything else but you can manually correlate that information by use of a map file.

    The online Compaq Visual Fortran Programmer's Guide

    contains more information on generating and using traceback information to debug your application.

    Correlation of program counter values to the source lines does not work with incremental linking. If you enable traceback and incrementally link your image, the RTL will disable PC correlation.

    o The call stack display in the IDE and traceback information displayed for errors from math intrinsics on Intel platforms used to be incorrect due to limitations of the WIN32 StackWalk() api. For debug images or images built with the /traceback option, the compiler

    will now use a calling sequence which the StackWalk() api is capable of interpreting correctly.

    o Visual Fortran now provides Fortran project wizards which make it easier for you to create a new Fortran project. In some cases, "template" code can be generated as a starting point for your application. See the "Types of Projects" section in the online Compaq Visual Fortran Programmer's Guide for details.

    o Visual Fortran now provides a facility to save and re-use the Project settings for multiple projects of the same project type. For example, you can save your

    Project settings environment for a QuickWin project type and use those saved settings as defaults when you create a new QuickWin project type. See the "Saving and Using the Project Setting Environment for Different Projects" section in the online Compaq Visual Fortran Programmer's Guide for details.

    3-16 Version 6 News

  • 8/10/2019 PSCAD CVF relnotes

    41/148

    o There is a new icon in the Fortran toolbar. It is named "Manage Saved Fortran Environment" and it displays your saved Fortran environments. It allows for selective deletion of saved environments and duplicate scanning. It also allows you to rename the environment or change the comment.

    o The RTL has a new feature for helping to debug unhandled IO programming errors in the IDE. When a severe unhandled IO programming error occurs (such as an End- of-File condition), and the program is executing in the debugger, the RTL will raise a debug event automatically so execution will stop and the Call Stack Display (Alt+7) can be viewed.

    When the debug event happens, the user will see an information box containing: User breakpoint called from code at 0xnnnnnnn

    along with disassembly information from NTDLL. Click on OK to dismiss the information box. Scanning down the Call Stack Display, there will be a few frames from NTDLL and the Fortran RTL displayed, and then the actual Fortran routine with the IO call will show up. In the Context menu, select the Fortran routine to get the Fortran code displayed with the green arrow pointing at the IO statement in error.

    This action all occurs after the error message and traceback information has been gathered and output. That information is available in the hidden program output window if you iconize the IDE. You should not need the stack dump because you have the Call Stack Display in the IDE, but the error message with the file name might be useful to see.

    In VF v5.0, this behavior is only supported on Windows NT: to break on an unhandled IO error on Windows 9*, the user had to use the environment variable FOR_GENERATE_ DEBUG_EXCEPTION. In VF v6.*, it is no longer necessary to use FOR_GENERATE_DEBUG_EXCEPTION.

    o The /optimize:5 and /[no]transform_loops options are now supported on the Intel platform. They have always been there on the Alpha platform.

    Version 6 News 3-17

  • 8/10/2019 PSCAD CVF relnotes

    42/148

    o The ...\DF\SAMPLES directory now contains a SAMPLES.HTM file that is a roadmap to the samples. It explains the functionality that each sample demonstrates.

    o The behavior of the REFERENCE attribute has changed, but only in a very specific, limited way.

    The change occurred in how character strings are passed when the STDCALL and REFERENCE attributes are both given to an entire function or subroutine.

    Character strings can be passed with or without a "hidden length". In general, they are passed with a hidden length included either immediately after the character argument, or at the end of the argument list.

    However, when certain attributes are applied to the argument or function, only the address of the character argument is passed with no hidden length argument. This was previously defined as:

    _________________________________________________________________ Argument Given to ATTRIBUTE ATTRIBUTES Given to Function or Subroutine C+REFER- STDCALL+REFER- ___________default__C________STDCALL___ENCE________ENCE__________

    default w/len arg(1:1) arg(1:1) w/len no len

    reference__no_len___no_len___no_len____no_len______no_len________

    This was how Microsoft PowerStation originally specified this behavior, so VF specified it too. However, there was no ability to pass a character argument with the hidden length *and* using the STDCALL attribute for the function. This was a major problem that did not occur with the C attribute because specifying C+REFERENCE did pass the length. Also, this was the only case where the C+REFERENCE behavior varied from the STDCALL+REFERENCE behavior.

    As a result, the STDCALL+REFERENCE behavior has been modified (when no attribute is given to the argument) to match the C+REFERENCE behavior, i.e. pass both the address and the hidden length in this case. This allows the use of STDCALL while still being able to pass the address of character arguments with or without the hidden length.

    3-18 Version 6 News

  • 8/10/2019 PSCAD CVF relnotes

    43/148

    To pass the address only, i.e., to get the old behavior, add the REFERENCE attribute to character arguments while keeping both the REFERENCE and STDCALL attributes on the routines.

    o The run-time support was modified to not require a record terminator or on the last record of a formatted data file. Prior to this change, an end of file during read was generated when this condition was encountered. Also, prior to this change, the switch /fpscomp=general would allow the last record to not contain a record terminator.

    o The BUFFERED= keyword has been added to the OPEN and INQUIRE statements. The default is BUFFERED='NO' for all

    I/O, in which case, the RTL empties its internal buffer for each WRITE. If BUFFERED='YES' is specified and the device is a disk, the internal buffer will be filled, possibly by many WRITEs, before it is emptied.

    If the OPEN has BUFFERCOUNT and BLOCKSIZE arguments, their product is the size in bytes of the internal buffer. If these are not specified, the default size is 1024 bytes for /fpscomp=general and 8192 bytes otherwise. This internal buffer will grow to hold the largest single record but will never shrink.

    o The command line option "/assume=buffered_io" turns on

    buffered I/O for all Fortran logical units opened for sequential writing. The default is "/assume=nobuffered_ io".

    o New functionality has been added to the Dialog Procedures:

    - Support for modeless dialog boxes (DlgModeless)

    - Support for Picture, Progress, Spin, Slider and Tab controls

    - Support for the DLG_ADDSTRING control index for List

    and Combo Boxes

    - Support for initial data for Combo Boxes

    See the "Using Dialogs" section of the online Compaq Visual Fortran Programmer's Guide for details. There is a new DIALOG samples directory which demonstrates the use of the new functionality.

    Version 6 News 3-19

  • 8/10/2019 PSCAD CVF relnotes

    44/148

  • 8/10/2019 PSCAD CVF relnotes

    45/148

    If you used any of the non-public procedures or structures in DFLOGM.F90, you must recompile your code before relinking.

    o New functionality has been added to the Fortran Module Wizard:

    - The wizard now processes the Enumerations in the type information. It generates PARAMETER declarations for the Enumerations that you select.

    - The wizard now generates PARAMETER declarations for the CLSIDs of the CoClass'es in the type information.

    - The list box in the "Type Library" dialog box now

    preceeds the name of the component with the type of component (for example, "Interface", "Enum", "Dispinterface", "Module".

    3.4 Version 6 Notes and Supplemental Information

    o The directories \x86\USUPPORT and \AXP\USUPPORT on the CD-ROM contain some unsupported but nevertheless useful tools. For example:

    _________________________________________________________________ ...\Support Directory___________Description__________________________________

    \Misc\CTEST.EXE This program may be renamed to "WHICH.EXE" and placed somewhere on a users PATH to perform the function of the Unix "which" command.

    \Misc\WHAT.EXE This program will scan a binary file for Unix style "what" strings and display any that are found. The DECFOR90.EXE may be used as an example of a file that contains these "what strings".

    \Misc\STRSUB.EXE This program will process a text file and

    replace all occurrences of a given string with another string.

    3-20 Version 6 News

  • 8/10/2019 PSCAD CVF relnotes

    46/148

    _________________________________________________________________ ...\Support Directory___________Description__________________________________

    \Misc\FIXMSTAB.EXE This program converts Fortran source code that uses Microsoft style tab rules to follow Compaq Fortran standard TAB rules.

    \Misc\CBANLC.EXE This program analyzes object and library files for inconsistencies in Fortran COMMON blocks that can lead to LINK errors and program failures. For instance, this tool will tell you if you have declared two COMMON blocks of the same name that have different sizes. Note that because of performance considerations, a COMMON block whose size is

    less than 8 bytes is reported to have a size of 8 bytes. This may cause inconsistencies in small COMMON blocks to not be reported.

    \Misc\CBANLW.EXE A Windows version of the above CBANLC tool.

    \Misc\LOADTEST.EXE This program can be used to try a test load on a DLL that might be loaded later by some program using the LoadLibrary API (such as used by Microsoft Visual Basic). It will try to load the DLL and report all other DLLs that are used in the process. Optionally it will lookup entry points in the loaded DLL

    using names passed in on the command line. All errors are reported.

    \Win95\EC.EXE This program may be used on a Windows 95 system to capture stderr output. It executes a command line after parsing and removing ____________________Windows_NT_compatible_redirection_symbols.___

    o Conditional compilation with various letters in column 1 of fixed form source is a Microsoft Fortran PowerStation feature that is not supported by VF. VF provides a sample program called DLINES (under Samples\Advanced\COM) which will automatically convert

    PowerStation conditional compilation letter lines to the !DEC$ IF DEFINED form. This program is also an interesting example of using the COM interface to drive Developer Studio, which is used to actually do the editing.

    Version 6 News 3-21

  • 8/10/2019 PSCAD CVF relnotes

    47/148

    o To allow you to read the Compaq Visual Fortran Installing and Getting Started guide before (or during) installation, the Installing and Getting Started document is provided in Adobe Acrobat Reader (PDF) format in the root directory of the Visual Fortran CD-ROM with a file name of CVF_GS.PDF. This file requires Acrobat Reader Version 4.0, which can be downloaded from: http://www.adobe.com

    After you install Visual Fortran, you can view the Visual Fortran Language Reference, Programmers Guide, Error Messages, Array Visualizer, and other online documentation with HTML Help Viewer.

    o The fpp preprocessor by default does not do macro

    substitution. There is an option to enable it: c:\users\test> df /fpp:"/m" tst.fpp

    The default is /fpp:"/nom".

    o Regarding how many files can be simultaneously open in a VF program, the following experiments were performed:

    - On Windows NT, a Visual Fortran program was able to open successfully 5000 files simultaneously.

    - On Windows 9*, a Visual Fortran program was able to open successfully 250 files simultaneously before it

    got an OPEN error.

    o Using NT v4.0 SP3 {service pack 3}, a VF program can compile and execute with a COMMON block up to 1.75GB in size.

    o VF allocates array temporaries and automatic arrays on the stack at run-time. The default size of the Win32 stack is not very large so you may need to increase the stack size.

    It is possible to increase the stack size either when you link the executable, or by using EDITBIN on the

    executable later.

    On the LINK command line, you can use the /stack qualifier, as: link /stack:4000000

    Or, as part of the DF or F90 command: df foo.f /link /stack:4000000

    3-22 Version 6 News

  • 8/10/2019 PSCAD CVF relnotes

    48/148

    You also have the option to modify the stack size in the executable itself using EDITBIN, such as: editbin /stack:4000000 foo.exe

    By default, the stack size is 0x100000, or (1,048,576 decimal).

    o The FULLAPI.F90 file. If the /winapp switch does not eliminate undefined globals from compiling a native windows application, try adding this file to your project or command line. FULLAPI.F90 contains library search directives for almost all needed libraries.

    o It is now possible to PRINT and SAVE your QuickWin screen images when your display settings are set to

    Hi Color (16 bits per pixel), True Color (24 bits per pixel), and True Color (32 bits per pixel). Only support for 256 colors (8 bits per pixel) or less was previously provided. This extended support also applies to the routines GETIMAGE, IMAGESIZE, LOADIMAGE, PUTIMAGE, and SAVEIMAGE, and to the _W versions of these routines such as SAVEIMAGE_W.

    To SAVE or PRINT a screen image, click on the window you want to use, click on the menu item EDIT, and Select All, then click on the menu item FILE, and click either PRINT or SAVE. You may display the resulting .BMP from SAVE in the PAINT accessory or you may use a call to

    the LOADIMAGE routine in a QuickWin program to bring the image back to the screen.

    o In the linker, the order that libraries are searched is the order in which the libraries are specified EXCEPT that the linker looks in the "current" library first. So, if your program references something in B.LIB and then it references F which is in both A and B, the linker will find the F in B.LIB even if A.LIB is specified on the link line first. If you specify /VERBOSE on the link command line, the linker will show you what it is doing.

    o On Windows 95 and Windows 98 systems, /fpe:0 does not work correctly on underflow. The hardware signals the underflow but the operating system reports a floating invalid. Instead of making the result value 0.0, the program aborts.

    Version 6 News 3-23

  • 8/10/2019 PSCAD CVF relnotes

    49/148

    4 _________________________________________________________________

    Visual Fortran Compiler Release Notes

    This chapter provides the following details about changes to the Compaq Fortran compiler:

    o Section 4.1, New Features and Changes for Version 6.6

    o Section 4.2, New Features and Changes for Version 6.5A

    o Section 4.3, New Features and Changes for Version 6.5

    o Section 4.4, New Features and Changes for Version 6.1A

    o Section 4.5, Features of Microsoft Fortran PowerStation Not Supported

    4.1 New Features and Changes for Version 6.6 | | The following changes have been made to the Compaq Fortran | compiler for VF v6.6 since VF v6.5A shipped: | |

    o The following changes have been made to the compiler | {from V6.6-1657-47B5I to V6.6-1684-47B6E}: | | - Do NOT evaluate the argument to any numeric inquiry | function (like HUGE). The evaluation may kill the | stack (for a large array argument, even without a | function call). CVF14579. | | - Make actual argument which is a function returning a | scalar pointer work correctly. CVF14525. | | - BOZ constants are allowed for integer initialization. | |

    - Fix access to module from path specified on command | line. | | - Array passing optimization was not working correctly | for assumed-shape arrays being passed as explicit | arrays. |

    Visual Fortran Compiler Release Notes 4-1

  • 8/10/2019 PSCAD CVF relnotes

    50/148

    | o The following changes have been made to the compiler | {from T6.6-1567-47B4D to V6.6-1657-47B5I}: | | - Improve the algorithm for ILEN to get better code. | | - Treat use of undefined compile time variable in | expression as integer with value 0. Do not diagnose. | | - Propagate 'only' and 'rename' info of module to | contained procedure. | | - Get debugging information put out at all | (appropriate) ENTRY points. In particular, put out | prolog code for dynamic array bounds for array dummy | arguments and for f90 automatic arrays.

    | | - Handle generic defined operator, merging specifics | from multiple modules; honoring 'only' defined | operator. | | - Handle VAX structures like F90 defined types. | | - Output a warning if a case selection element is too | big to fit in the maximum integer. | | - Fix /fast vs /align and /assume used together. | | - Fix bug in WHERE in FORALL where WHERE mask contains

    | a call to an elemental function. | | - Initialized records need to be re-initialized at | every entry point. | | - Fix generated code for optional arguments to | SELECTED_REAL_KIND. | | - Allow '.' as well as '%' as field separator. | | - Recognize match between actual 'procedure' argument | with pointer attribute and dummy 'procedure' argument | with pointer attribute.

    | | - Accept VAX scalar field name reference (x.y) where | x currently known as parameter object of structure | type. | | - Accept allocatable components as arguments of | ALLOCATED intrinsic. | | - When accepting/rejecting common data, do not forget | to handle data equivalenced to common.

  • 8/10/2019 PSCAD CVF relnotes

    51/148

    4-2 Visual Fortran Compiler Release Notes

  • 8/10/2019 PSCAD CVF relnotes

    52/148

    - Recognize renamed generic in 'use' where there also | is an 'only' clause. | | - Handle use of a contained function in bounds | expression of following procedure. | | - Fix bug in the NT driver where it would accvio if | a MS-style qualifier that required a value was put | at the end of a line, and did not have its required | value. | | - Update intrinsic functions COUNT and ZEXT to allow | optional 'KIND' argument. | | - Get the debug locator correct for all ENTRY SYMBOLs. |

    | - Inhibit release of warning: 'Symbol in block data | program unit is not in a COMMON block' if the symbol | has a 'use'. To allow use in implied do of data | initialization. If other use , earlier diagnostic | would have been issued. | | - For CVF 6.6 and later, always look for a FLEXlm | license. | | o The following changes have been made to the compiler | {from T6.6-1495-47B38 to T6.6-1567-47B4D}: | |

    - Make sure that type associated with function result | gets added to list for export. | | - Fix problem with importing generic symbol. | | - Fix problem with importing common symbol which is | renamed. | | - Implement correct ALIGN=xx values; support ALIGN=PAGE | on all platforms (which is new) and set the alignment | to whatever a "page" means on that platform. | | - Generate better debug information for dummy arguments |

    which are subroutines or functions. | | - Do the right thing on Intel if number_of_processors | is being stored to an integer*8. | | - If /integer_size:64 is set, the conditional | compilation code would generate errors saying | "invalid conditional compilation expression". |

    Visual Fortran Compiler Release Notes 4-3

  • 8/10/2019 PSCAD CVF relnotes

    53/148

  • 8/10/2019 PSCAD CVF relnotes

    54/148

    | - Collect ALL generic entries for a name from the set | generated during import. Multiple modules may validly | contain generic specifications for a single symbol. | | - Process /fpscomp options general and ldio_spacing in | a left-to-right order. CVF13939 | | - Fix SIZE(A,DIM) where DIM is an optional argument. | CVF11111 | | - Exclude test for subroutines when issuing implicit | declaration warnings in response to !DEC$ declare | directive | | - Correctly report when an incorrect number of

    | arguments has been detected in a structure | constructor. | | - Allow MAX and MIN to have optional arguments. | CVF11111 | | - Optimize module importing when 'use' occurs within | interface blocks. | | - In the NT driver, pass along -annotations:keyword | to the compiler. Also, if the debug C libraries are | specified (either with /dbglibs or /MxD) link against | the corresponding debug Fortran libraries.

    | | - Repair handling of old form of DEC alias directive. | | - Fix problem with calling KISHFTC on Intel. | | - After verifying legality of octal constant as | argument, attach type to argument and to underlying | constant. | | - Inhibit diagnostic for implicitly typed forward | reference of a variable which is subsequently | explicitly typed: character*(n+1) function s(n) | !forward ref of n integer, intent(in) :: n

    | | - In the NT driver, recognize if we're running on | Windows ME and set -D_WINME if so. | | - Fix /assume:dummy_aliases to the conflicts with other | parameters, variables in COMMON and in MODULES, and | pointers/allocatables in COMMON/MODULES.

    4-4 Visual Fortran Compiler Release Notes

  • 8/10/2019 PSCAD CVF relnotes

    55/148

    - On Intel, limit the size of the array bounds at | declaration time to 'fit' within a 32-bit integer. | Output an error if either the upper or lower bound | exceeds that size. | | - Mark the array descriptor for an explicitly shaped | array function result as quadword aligned. | | o The following changes have been made to the compiler | {from V6.5-1332-44ACE to T6.6-1495-47B38}: | | - Make /STANDARD (-stand) mean F95, not F90. | | - When merging specific procedure lists from different | modules, allow multiple definitions for generics. |

    | - Recognize /fpscomp:libs in compiler for *_WNT | environments. | | - Diagnose missing intent attributes on pure | (explicitly or implicitly if elemental) subroutine | arguments which are neither pointers nor procedures. | | - Support INTEGER(KIND=8) and LOGICAL(KIND=8) as 64-bit | signed integers. | | - Diagnose mask expressions with incompatible shapes in | where constructs and contained where/elsewheres. |

    | - Impose standard restriction that defined-operator | names consist only of letters. | | - Allow /fpscomp:[no]ldio_spacing. | | - When /fpscomp:general is specified. set | /fpscomp:ldio_spacing. (CVF13066) | | - /warn:trucated_source must be set even if /stand:f95 | is to get "truncated source" message. | | - Do not loose place in source stream when see zero- |

    padded-integer. | | - Repair another field-dot problem in defined | operators. | | - For COMPLEX*16 results, special case CCOS, CEXP, | CLOG, CSIN, CSQRT to be type of arg; similarly for | REAL*8 and ALOG, ALOG10. |

    Visual Fortran Compiler Release Notes 4-5

  • 8/10/2019 PSCAD CVF relnotes

    56/148

  • 8/10/2019 PSCAD CVF relnotes

    57/148

    | - Fix inquire with IOLENGTH=FIELD%NAME or array | element. | | - Repair several module errors with ONLY, RENAMEs, and | deep nesting. | | - Do not diagnose fields of private types as | inaccessible within the defining module, just outside | the module. | 4.2 New Features and Changes for Version 6.5A

    The following changes have been made to the Compaq Fortran compiler for VF v6.5A since VF v6.5 shipped:

    o The following changes have been made to the compiler {from V6.5-1096-44A6D to V6.5-1332-44ACE}:

    - Prevent incorrect collapsing of implied-DO loop in an I/O statement where there are nested loops and the implied-DO variable of one loop is used as a bound of an inner loop.

    - When the error limit has been exceeded (default 30), simply suppress further messages rather than exiting the compiler. This means that the object file will get deleted appropriately, the listing and diagnostic (VMS) files created, and subsequent source files on

    the command line will be processed.

    - Re-allow complex constants to be passed by value. The real and imaginary parts are passed as separate arguments.

    - Allow character array valued function as a format specifier.

    - Allow debugging of a character function whose length is computed based on the length of a passed-length character argument.

    - Eliminate internal compiler error for character function whose length expression includes LEN_TRIM of a dummy argument.

    - Eliminate internal compiler error for SIZE of a derived type component pointer array.

    4-6 Visual Fortran Compiler Release Notes

  • 8/10/2019 PSCAD CVF relnotes

    58/148

    - Eliminate more unnecessary copies of contiguous array arguments.

    - Speed up processing of EQUIVALENCE groups in COMMON blocks.

    - Properly handle SIZE(A(:)(I:J))

    - Implement INT8 intrinsic (already documented) - UNIX)

    - Allow omitted OPTIONAL arguments to be passed as optional arguments to intrinsics.

    - If "too many errors", suppress informational/warning messages as well.

    - Allow keyword specification of arguments A10, A20, etc. to MAX/MIN.

    - Eliminate internal compiler error for case of ADJUSTL with array argument.

    - Where DATA initializations initialize the same array element (not allowed according to the standard, but supported by Compaq Fortran), preserve the order in which initializations were specified, so that the last one takes precedence.

    - Support the full range of format width specifiers as documented.

    - Improve detection of contiguous array slices.

    - Correct support for SIZE with argument being array with vector subscripts.

    - Eliminate internal compiler error for initialization expression which contains a constant expression in a structure constructor.

    - Allow EXTERNAL :: FOO

    - Correct parsing error for certain record component references using dots.

    - Eliminate internal compiler error for particular use of RESHAPE.

    - Do not give an unused variable warning where the only reference to a variable is as the argument to LOC.

  • 8/10/2019 PSCAD CVF relnotes

    59/148

    Visual Fortran Compiler Release Notes 4-7

  • 8/10/2019 PSCAD CVF relnotes

    60/148

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

  • 8/10/2019 PSCAD CVF relnotes

    61/148

    4-8 Visual Fortran Compiler Release Notes

  • 8/10/2019 PSCAD CVF relnotes

    62/148

  • 8/10/2019 PSCAD CVF relnotes

    63/148

    have an optional argument at the same position.

    Visual Fortran Compiler Release Notes 4-9

  • 8/10/2019 PSCAD CVF relnotes

    64/148

    - In C strings, allow octals of the form \ooo to have 1, 2 or 3 octal digits and hex objects of the form \Xxx to have 1 or 2 hexadecimal chars.

    - Add support for /check:arg_temp_created

    - Annotations now are displayed on a per-routine basis.

    - Put out type information to the debugger for module functions

    - Add diagnostic message:"The NOSEQUENCE directive may not be specified for a component of a derived type which has the SEQUENCE attribute."

    - Use new RTL routine, for_check_mult_overflow(), to calculate the size of an array to be allocated, passing flag returned to for_allocate(). Also create me_emit_by_val_arg() and use it where appropriate.

    - Fix obscure bug with OPTIONAL mask for intrinsics MAXLOC et al. The mask has an expression for the dimension bound(s). 22-Nov-00 mrb - ffe_cl.c - allow, without assertion violation -

    - When a psect becomes too big, give a better error message: ME_STOREQEXC "Psect !AD is too large. Reduce array sizes or make arrays AUTOMATIC or ALLOCATABLE."

    - Allow character substring assignment in forall.

    - Fix a MODULE problem with named or blank common.

    - Make -fast set the "align dcommons" bit. The effect is ONLY on the listing.

    - Fix an arg copy problem for array references like a(:,:).

    - Improve debug location for programs with adjustably dimensioned arrays.

    - Make fields of PRIVATE records PRIVATe too.

    - Fix another problem with COMMON in MODULEs.

    - Fix a problem with generic names in USE ONLY.

    - Fix a problem with USE ONLY and renamed symbols.

    - another problem with targets of pointer assignment.

  • 8/10/2019 PSCAD CVF relnotes

    65/148

    4-10 Visual Fortran Compiler Release Notes

  • 8/10/2019 PSCAD CVF relnotes

    66/148

    - Generate better code when ISHC has integer*4 or integer*8 arguments.

    - Fix problem with USEd routines that use derived types or parameters in their definitions.

    - Diagnose 'Arrays in reduction clauses are not supported.'

    - Fix INT_PTR_KIND to return 4 on Alpha/NT.

    - call foo(NINT) should pass JNINT instead of ININT.

    - Passing IDINT should use integer*4 instead of integer*2 routine names.

    - Issue diagnostic for character string as arg to RECL= in OPEN statement.

    - Fix a problem where a substring index in a FORALL assignment stmt uses one of the indexing variables.

    - Fix a problem with USEd routines that have local variables in bounds.

    - Fix /arch:k7 to generate prefetch instructions.

    4.3 New Features and Changes for Version 6.5

    The following changes have been made to the Compaq Fortran compiler for VF T6.2.T Beta 1 (6.5 beta 1) since VF v6.1A shipped:

    o The following changes have been made to the compiler {from -970-42A1L to -1011-44A33}:

    - Correct problem with NULL initialization of POINTER/ALLOCATABLE variables.

    - Correct problem with PACK intrinsic where array is array of structures with an array field with constant

    subscript/substring values.

    - Improve generated code for SPREAD intrinsic.

    - Improve generated code for array reductions.

    - Improve generated code for UBOUND, LBOUND, SELECTED_ INT_KIND, SELECTED_REAL_KIND when the argument(s) are constants.

  • 8/10/2019 PSCAD CVF relnotes

    67/148

    Visual Fortran Compiler Release Notes 4-11

  • 8/10/2019 PSCAD CVF relnotes

    68/148

    - Improve generated code for SIZEOF when bounds are constants.

    - Eliminate internal compiler error for certain cases of integer (not F90) POINTER as a module variable.

    - Reduce severity of "variable has not been used" diagnostic to "informational".

    - Improve generated code for MINVAL/MAXVAL.

    - Improve generated code for SIZE(A(:)).

    - Improve generated code for SIZE with array argument that has vector subscripts.

    - Add new INT_PTR_KIND() intrinsic which returns the kind of an integer pointer (either 4 or 8).

    - Eliminate internal compiler error for use of allocatable array reference in a variable format expression.

    - Improve generated code for ILEN.

    - Don't do "flawed Pentium check" when /arch specifies Pentium Pro or "higher".

    - An end-of-file condition on READ no longer triggers an ERR= branch - this is to conform with clearer wording in the recent standard. If an EOF condition occurs and there is no END= or IOSTAT=, an error is signaled.

    - Add a NULL to the end of non-C character literals. This will not be reflected in the "length" of the constant.

    - %VAL/%REF now overrides any mechanism specified in an explicit interface.

    - DFOR$PREFETCH, DFOR$PREFETCH_MODIFY, DFOR$PREFETCH_ EVICT_NEXT intrinsics now supported for Alpha processors.

    - Generate correct values for a PARAMETER array whose element values are computed in an implied DO loop involving indexing into another PARAMETER array.

    - Correct bad parse of .NE. as record field name.

  • 8/10/2019 PSCAD CVF relnotes

    69/148

    4-12 Visual Fortran Compiler Release Notes

  • 8/10/2019 PSCAD CVF relnotes

    70/148

    - Allow a dummy argument that has an INTENT attribute specified to be specified in a NAMELIST list.

    - Give standards warning for kind mismatch between source and pad arguments in RESHAPE.

    - Long source lines are now correctly compiled when standards checking is requested (warning is still given.)

    - Correct problem with incorrect error given for a particular complex module renaming case.

    - Allow as an extension a LOGICAL argument to an intrinsic which expects INTEGER.

    - Correctly parse format which contains ">" characters and a variable format expression.

    The following changes have been made to VF T6.2.U Beta 2 since VF T6.2.T Beta 1 shipped:

    o The following changes have been made to the compiler {from -1011-44A33 to -1055-44A4S}:

    - Generate much better code for certain array constructors (such as (/0,I=1,500000/) and allow lowerbound, upperbound, and stride to have different

    KINDs.

    - Eliminate many unnecessary copies of assumed-shape arrays when passed as arguments to explicit shape arrays by keeping track of whether or not the array is known to be contiguous.

    - Automatically force the alignment of a COMMON block to be at least as large as that required by the widest variable in the COMMON block.

    - Fix a number of problems with WHERE inside of FORALL.

    - Make defined assignment in FORALL work properly.

    - Generate correct code for CSHIFT of a non-contiguous array slice.

    - Eliminate internal compiler error for a particularly complex and deeply nested structure reference in an IF.

    Visual Fortran Compiler Release Notes 4-13

  • 8/10/2019 PSCAD CVF relnotes

    71/148

  • 8/10/2019 PSCAD CVF relnotes

    72/148

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

  • 8/10/2019 PSCAD CVF relnotes

    73/148

    4-14 Visual Fortran Compiler Release Notes

  • 8/10/2019 PSCAD CVF relnotes

    74/148

    - When standards checking is enabled, give one warning, not three, for a !DEC$ ATTRIBUTES directive.

    - Generate correct code for certain cases involving overloading of the .AND. and .OR. operators.

    - Fix a case where two NaNs sometimes compared as equal.

    - Eliminate GEM assertion for program unit that declares a COMMON block, DLLIMPORTs it, but never uses it.

    The following changes have been made to VF T6.2.U Beta 2 plus since VF T6.2.U Beta 2 shipped:

    o The following changes have been made to the compiler {from -1055-44A4S to -1088-44A5I}:

    - Allow user-defined types to be named BYTE and DOUBLECOMPLEX.

    - Improve generated code for mixed COMPLEX-REAL multiplication and division.

    - Disallow the unsupported declaration COMPLEX*32 or COMPLEX(16).

    - Make sure that underflows go to zero with /fpe:0 and /fpe:1 in certain situations where they did not before.

    - In array constructors with only one implied-DO, and nothing else, avoid creating an unnecessary temp.

    - Allow SIZEOF(allocatable-array)

    - Allow Variable Format Expression in a character literal when the I/O list has a subscripted array element.

    - Eliminate compiler abort with incorrect program that names the enclosing program unit in an ONLY clause.

    - Allow the extension syntax '101'B for a binary literal.

    - Fix problem where $INTEGER directive was not being properly handled.

    - Add support for KIND= keyword in MINLOC/MAXLOC

  • 8/10/2019 PSCAD CVF relnotes

    75/148

    Visual Fortran Compiler Release Notes 4-15

  • 8/10/2019 PSCAD CVF relnotes

    76/148

    - Add support for KIND= keyword in various string intrinsics.

    - Prevent compiler abort for incorrect attempt to pass unsupported data types by value.

    - Properly report invalid declaration EXTERNAL,INTEGER and recover so that remainder of program is properly parsed.

    - Give standards warning for non-standard placement of NAMELIST.

    The following changes have been made to VF v6.5 since VF T6.2.U Beta 2 plus shipped:

    o The following changes have been made to the compiler {from T6.2-1088-44A5I to V6.5-1096-44A6D}:

    - Improve generated code for SIZEOF(array)

    - Eliminate internal compiler error for particular type of concatenation of substrings when Fortran 95 standards checking is requested.

    - When converting a negative REAL value to COMPLEX, use +0.0 as the imaginary part rather than -0.0.

    - Allow PARAMETER constant in ALIGN= specification of !DEC$ PSECT.

    - If DLLIMPORT is specified for an identifier not otherwise used or declared, treat it as if it named a routine and not a variable.

    - Do not give shape mismatch for correct-shape RESHAPE in initialization expression.

    - Do not give inappropriate alignment warnings for certain convoluted EQUIVALENCE/COMMON combinations.

    - Change the version number to 6.5; there are no releases numbered 6.2, 6.3, or 6.4.

    4-16 Visual Fortran Compiler Release Notes

  • 8/10/2019 PSCAD CVF relnotes

    77/148

    4.4 New Features and Changes for Version 6.1A

    The following changes have been made to the Compaq Fortran compiler for VF v6.1A since VF v6.1 shipped:

    o The following changes have been made to the compiler {from -845-4297N to -970-42A1L}:

    - Add /ALIGN:SEQUENCE which specifies that SEQUENCE types may be padded for alignment.

    - Make the default for BLANK= in OPEN match the documentation when the -f66 (/NOF77) switch is specified, which is to default to BLANK='ZERO'. Previously, BLANK='NULL' was used regardless.

    - Allow array constructors to have scalar CHARACTER source elements of varying size.

    - Correct problem where a call to a routine with the C and VARYING attributes generates incorrect code.

    - Allocate all PARAMETER constants in a read-only PSECT.

    - Ensure that locally-allocated derived-type arrays are naturally aligned.

    - Generate correct code for pointer assignment of an array generated from a section of a derived type.

    - Eliminate internal compiler error in certain cases with dummy argument that has OPTIONAL and INTENT(OUT) at