--------------------------------------------------------------------------- Visual Numerics, Inc. PV-WAVE Version 9.01 Tips March 2008 --------------------------------------------------------------------------- PV-WAVE TIPS AND TECHNICAL NOTES -------------------------------- The file Tips contains a list of tips and technical notes which includes known problems, work-arounds, suggestions for setting up your operating environment, general reminders and a documentation errata list. This file is provided in online form strictly for convenience, and may differ from the hardcopy version shipped with the product. Contact your PV-WAVE system administrator or Visual Numerics Technical Support for the most recent hardcopy version of PV-WAVE Tips and Technical Notes. Contact Visual Numerics Technical Support for any other questions or comments you may have. Topics presented in this file are: CHECK THE USER'S GUIDE OR THE REFERENCE TECHNICAL TIPS SYSTEM MESSAGE OF THE DAY FILE INSTALLATION/LICENSE MANAGER GENERAL INSTALLATION TIPS WINDOWS INSTALLATION TIPS WINDOWS UNINSTALLATION TIPS LMHOLD NO LONGER REQUIRED WINDOWS LICENSE QUEUEING OPENVMS DIRECTORY DEPTH LIMITATION HDF and HDF5 on 32/64 BIT PLATFORMS INSTALLATION OF MANUALS ONLINE PDF READER REQUIRED FOR MANUALS ONLINE WINDOWS VISTA TIPS PV-WAVE NAVIGATOR HIDDEN ICONS CROSS-PLATFORM CONFIGURATION FILES CONFIGURATION FILES ARE NOT STANDARD SAV FILES REVIEW TOOL DEFAULTS AFTER ADDING TOOLS TO THE NAVIGATOR SAVING CUSTOM COLORS IN NAVIGATOR SESSIONS VDA TOOLS GRAPHICAL ELEMENTS OUTSIDE WINDOW X COLOR RESOURCES WZANIMATE CAN STACK UP EVENTS WZHISTOGRAM WITH SMALL BIN SIZES WZMULTIVIEW VIEW ELEMENTS UNSELECTABLE GRAPHICAL ELEMENTS IN WZPLOT AFTER WZMULTIVIEW DEFAULT VDATOOL RESOURCES VARIABLE NAME REQUIREMENTS ROTATED TEXT ELEMENTS ON X11R5 SERVERS THE X SERVER NEEDS TO BE STARTED IN PSEUDOCOLOR MODE WZCOLOREDIT: CUSTOM PLOT COLORS NOT RESTORED WITH CUSTOM COLOR TABLES IMAGE MODULE OPTION IMAGE_DISPLAY: NOT ENOUGH COLORS ERROR IMAGE_DISPLAY ANIMATE KEYWORD DOES NOT WORK ON WINDOWS DICOM IMAGE FILE SUPPORT ONLINE HELP SETTING THE WAVEBROWSER ENVIRONMENT VARIABLE FOR UNIX WINDOWS ONLINE HELP BROWSER SECURITY OPENVMS ONLINE HELP IF PV-WAVE DEBUGGER CRASHES ON STARTUP SAVED FILE ISSUES SAVE, /ALL CAN BE DANGEROUS STRUCTURE CONFLICTS ON RESTORE OPENVMS TIPS MOTIF LEVEL VERIFICATION X LIBRARY ERRORS HP Integrity OpenVMS - ITANIUM (ia64), G FLOAT VERSION (iagvms) TIPS G_FLOAT VS IEEE_FLOAT AND DIVIDE BY ZERO EXCEPTION ISSUES DIGITAL UNIX TIPS HEWLETT-PACKARD HP-UX TIPS IBM AIX TIPS RED HAT LINUX TIPS X VISUAL CLASS SUPPORT WIDGET EVENTS THREE-BUTTON MOUSE EMULATION USING A TWO-BUTTON MOUSE BESELY FUNCTION FAILS ON RED HAT LINUX MICROSOFT WINDOWS GENERAL TIPS MINIMUM RESOLUTION 1024x768 SPAWN IDIOSYNCRASIES OCTAL STRING CONSTANTS SLOW GET_KBRD RESPONSE DC_READ_DIB AND COLOR PALETTE INCONSISTENCIES HARDWARE FONTS AND SET_GRAPHICS_FUNCTION COLOR MODEL ON WINDOWS RETAINED WINDOWS COLOR MAPS DESENSITIZED WWOPTIONMENU MB2 IS SHIFT-MB1 WWCOMMAND WIDGET GETVALUES PRINTING FROM A GRAPHICS WINDOW TO A POSTSCRIPT PRINTER INTERMITTENT DIALOG TIMING PROBLEMS X TOOLKIT ERRORS FROM TOOL ICONS IN NAVIGATOR NEED TO TRIPLE-CLICK CONFIGURATION ICONS IN NAVIGATOR TRUETYPE FONTS IN VIEW ELEMENTS WWALERT BLOCKS COMMAND LINE AFTER DISMISSED DRAWING INTO NON PV-WAVE WINDOWS (via set_win_id) IF YOU INSTALL PV-WAVE IN A DIRECTORY WITH SPACES IN THE PATH INTERAPP UNSUPPORTED WITH FORTRAN ON WINDOWS SQL SERVER BOUND OUTPUT PARAMETERS MUST BE UNDEFINED SQL SERVER 2005 NVARCHAR DATA TYPE UNSUPPORTED WINDOWS 64-BIT TIPS NO MS EXCEL OR ACCESS ODBC DRIVERS YET RUNNING 32-BIT PV-WAVE ON x64/AMD64 CHIPS OPI PROGRAMMING ON 64-BIT WINDOWS PV-WAVE AND LAPTOP COMPUTERS SPECIAL LICENSES FOR LAPTOP COMPUTERS DNS TIMEOUTS ON LAPTOP COMPUTERS MICROSOFT WINDOWS TIPS WPRINT COMMAND AND NETWORK PRINT SERVERS MICROSOFT WINDOWS ODBC TIPS SILICON GRAPHICS IRIX TIPS HARDWARE-DEPENDENT MATH ERROR HANDLING SUN SOLARIS TIPS PROBLEMS WITH MULTIPLE 'DEVICE' CALLS LOADING OPTIONS DBLINK TIPS (UNIX) DB_SQL ERROR ON SYBASE WHEN NO COLUMN OR ROWS RETURNED FROM QUERY GENERAL PROGRAMMING TIPS STRSPLIT 64-BIT TIPS VISUALIZATION TOOLKIT (VTK) PV-WAVE SAVED FILES BYTE SWAPPING READING BINARY FILES f77_unformatted FILES STRUCTURE ELEMENT PADDING IN BINARY FILES XDR FILE LIMITATIONS READU_32 ROUTINE FORTRAN INTERAPP ON LINUX64 INTEL EM64T RED HAT ENTERPRISE LINUX 4 IMAGE PROCESSING TOOLKIT VISUALIZATION TOOLKIT (VTK) TIPS VDATOOLS CROSS-PLATFORM PRINT OPTIONS ISSUES UNDER UNIX DOCUMENTATION ERRATA CHECK THE USER'S GUIDE OR THE REFERENCE Significant changes and updates have been made to the PV-WAVE documentation, both in hardcopy and online form. Please refer to the new manuals first if you encounter problems. TECHNICAL TIPS SYSTEM An online Technical Tips System is available via anonymous ftp. These helpful Tips can be found in our anonymous ftp area, and contain even more, up-to-date information than these technical notes. The Technical Tips System are the same tips used by our Technical Support engineers, and are updated on a regular basis. To access the Technical Tips System, please refer to the README.WAVE_TIPS file in our anonymous ftp area. To access this file: % ftp ftp.boulder.vni.com Name: anonymous Password: ftp> cd VNI/wave_tips ftp> get README.wave_tips The Technical Tips may also be searched from the World Wide Web home page at http://www.vni.com. You may now routinely request Technical Support assistance and submit bug/enhancement reports through email or FAX. The Email and Fax Support Form and instructions are found in our anonymous ftp area (VNI/Email_Fax_Form), and in $WAVE_DIR/Email_Fax_Form. MESSAGE OF THE DAY FILE Every time PV-WAVE is started, it looks for a file named motd in $WAVE_DIR/bin. If this file exists, its contents are printed out just before the first WAVE> prompt is displayed. This file can be used to inform users of changes to PV-WAVE, the date of the most recent update, and other information of interest. To create a message of the day file, use a text editor to create a file named motd in the directory $VNI_DIR/wave/bin. The message is displayed exactly as it appears in the message file. INSTALLATION/LICENSE MANAGER 1) GENERAL INSTALLATION TIPS - The installation's status bar may not accurately reflect the installation status. - If at the end of your installation, the installer reports there may be warnings or errors reported in your installer log file named PV-WAVE_9.0_Product_Family_InstallLog.log located in your installation directory, search the file for the words WARNING or ERROR to see the potential problem. 2) WINDOWS INSTALLATION TIPS - WINDOWS INSTALLATION SIZE: PV-WAVE Setup will report disk space required for each option calculated according to the amount of disk space required for an NTFS formatted disk. If you are installing on a FAT disk, approximately 20% - 40% more disk space than is reported by the setup program will be required, including temporary space. - WINDOWS SYSTEM DIRECTORY CHANGES: When PV-WAVE executables are installed, approximately 1MB of system files will be added to your system disk. These files include up-to-date versions of the MSVC++ dll(s) in C:\Program Files\Common Files\Microsoft Shared\VC. - If an installation is aborted while in progress, you may need to manually remove files that had already been installed. - WINDOWS PROGRAM GROUP INSTALL CHANGES: Whenever a Program Group is installed using the 'Program Group for an Exisiting Installation' type option in the PV-WAVE Setup to allow a machine to run a remote PV-WAVE installation, uninstallation files will be written onto the user's Profile in a directory named: %USERPROFILE%\Application Data\Visual Numerics\Uninstall_PV-WAVE_Family When a Program Group installation is uninstalled from the local machine, files on the %VNI_DIR% disk will not be affected; only the local user's PV-WAVE program group, local PV-WAVE system files, and the uninstallation files themselves will be removed. The installation for which you are installing a Program Group must be a valid installation of one or more of the PV-WAVE Family of Products. - The installation installs Microsoft DLLs necessary to run PV-WAVE. These DLLs are installed through a Microsoft Visual C++ 2005 Redistributable installation that executes near the end of the PV-WAVE Family of Products installation. When you finally uninstall The PV-WAVE Family of Products installation, the Microsoft Visual C++ 2005 Redistributable installation will also be uninstalled. 3) WINDOWS UNINSTALLATION TIPS - Occasionally, the Uninstaller may not completely remove files. This may be due to a corrupt version of the file .com.zerog.registry.xml in C:\Program Files\Zero G Registry. This file may become corrupt if, for instance users re-install into the same directory without first uninstalling or when unexpected system problems occur during an installation. If this happens, rename .com.zerog.registry.xml, manually delete your installation and Program Group files and your next installation should install and uninstall normally. - Due to some jre incompatibilities, Windows 64 will occasionally not uninstall. If this happens, manually delete your installation and Program Group files. 4) LMHOLD NO LONGER REQUIRED: The command line argument and the environment variable LMHOLD are no longer required to keep inactive PV-WAVE sessions from losing their license and dying. The seat will still be taken away by the license server, but your PV-WAVE session will now attempt to reconnect to the server and get another. 5) WINDOWS LICENSE QUEUEING: If no seats are available when you attempt to start PV-WAVE you are asked if you wish to enter the queue for the next available seat. We have found that many times, the PV-WAVE Home Window will not allow you to respond to the question and will hang. If you then close the Home Window by either File->Exit or the system close button ('X') the wavewin2 process will be left active. You must then kill the wavewin2 process via the Task Manager. License Queueing works normally in the console window. 6) OPENVMS DIRECTORY DEPTH LIMITATION OpenVMS imposes a limit of eight on the depth of a directory tree; that is, eight levels from the point of the XXX$:[] mount point definition. The PV-WAVE tree's maximum depth (including VNI_DIR) is six. When you're installing PV-WAVE, take this into consideration as you choose your base installation directory. For instance, if you install in a user's home directory on OpenVMS that is in DKA0:[LOG1$.USERNAME] and install VNI_DIR in DKA0:[LOG1$.USERNAME.VNI800], this will be OK, but will hit the maximum depth level. The tricky part is, if you set def to DKA0:[000000.LOG1$.USERNAME], then install, even though this is the same location as DKA0:[LOG1$.USERNAME], the 000000 adds an extra directory level and the deepest wave directories will not be installed. As of this writing, these are the wave tree's deepest directory levels to check for after an installation: wave .lib .user .jcoder .xres wave .lib .user .call .docs wave .lib .user .dc_image .test wave .lib .user .examples .mapfill wave .lib .user .network .xres wave .lib .user .vdatools .xres wave .demo .web .weather .applet wave .demo .web .weather .cgi wave .demo .web .weather .hourly_data wave .demo .web .weather .images wave .demo .web .weather .wavecode wave .demo .wtoolbox .help .motiftable 7) HDF and HDF5 on 32/64 BIT PLATFORMS HDF and HDF5 options are not installed properly when both the 32 bit and 64 bit versions of an operating system are selected during installation. It is recommended that you install each version separately or unzip the platform specific HDF files in your install directory. INSTALLATION OF MANUALS ONLINE 1) PDF READER REQUIRED FOR MANUALS ONLINE A reader capable of viewing PDF files (Portable Document Format), such as Adobe Reader (formerly Adobe Acrobat Reader), is required to access PV-WAVE Manuals Online. For UNIX and Windows, Adobe Reader installation files may be downloaded from http://www.adobe.com. For AXPVMS, XPDF 2.2 will be installed during the PV-WAVE installation. Readers for UNIX platforms, with the exception of Linux, can also be downloaded from the Visual Numerics anonymous ftp site (see section above, TECHNICAL TIPS SYSTEM for ftp access). UNIX users: It is recommended you install your PDF reader on a shared disk so it may be accessed by users running PV-WAVE Manuals Online from remote machines. o UNIX Manuals Online The Manuals Online table of contents page can be viewed by typing 'wavedoc&' at the UNIX prompt or by typing 'HELP, /Doc' at the WAVE> prompt. To enable these commands, create a softlink named $VNI_DIR/manuals/bin/bin_$ARCH/bin/pdfreader that points to your PDF reader's executable or startup script. For instance, if you are using Adobe Reader installed in : cd $VNI_DIR/manuals/bin/bin_$ARCH/bin/ ln -s /bin/acroread ./pdfreader o Windows Manuals Online If you do not have a PDF reader installed, Adobe Reader can be installed from the PV-WAVE distribution CD in AdobeReader/AdbeRdr60_enu.exe or may be downloaded from http://adobe.com. TIP: In some cases, older versions of Adobe Reader or Adobe Acrobat Reader must be uninstalled before installing newer versions. o OpenVMS Manuals Online If the Manuals Online option is selected during the PV-WAVE installation, XPDF 2.2 (http://www.foolabs.com/xpdf) will be automatically installed in VNI_DIR:[MANUALS.BIN.BIN_AXPVMS]. If you choose later to use a different PDF reader, modify the definition of wave_doc_reader in VNI_DIR:[WAVE.BIN]MAKE_WVSETUP.COM and VNI_DIR:[WAVE.BIN]WAVEDOC.COM, then re-execute MAKE_WVSETUP.COM to create a new wvsetup.com. WINDOWS VISTA TIPS PV-WAVE version 9.0 has been tested on the Microsoft Vista 32-bit platforms. Testing on this platform has shown intermittent segmentation violations when running PV-WAVE Widgets and using the default Vista Visual Effects. Changing the Visual Effects to 'best performance' eliminates the seg faults. To check/change the Visual Effects settings on Window Vista: Open the System->Properties. Select 'Advanced system settings'. Select the 'Advanced' tab. Select the 'Settings' button under 'Performance' Select the 'Visual Effects' tab. To turn the Visual Effects off, select 'Adjust for best performance'. The Microsoft Vista 64-bit version has not been tested yet and is not currently supported for the PV-WAVE 9.0 release. PV-WAVE NAVIGATOR 1) HIDDEN ICONS: It is possible to inadvertently position tool icons in the Navigator in such a way that they are stacked on top of each other. Also, restoring a Navigator Configuration does not restore the state of the message_area. This can result in the appearance that some tools did not restore. Simply turn off the message_area or enlarge the Navigator and redraw the tool icons (via, Configure->Redraw). 2) CROSS-PLATFORM CONFIGURATION FILES: Navigator configuration files saved under Unix are not compatible with OpenVMS or Windows, and vice-versa. This is due to the fact that the entire pathnames of the tool's icon are saved in this file. If you would like your own personal Navigator, and are working in a mixed environment then the best solution is to save a configuration on each platform in your default directory under the default Navigator Configuration Filename, (found in nav.ads, currently "nav-cfg.sav). The algorithm for finding the default file is: On UNIX: Current directory then Check HOME environment variable On OpenVMS: Current directory then Check SYS$LOGIN logical On Windows: Current directory Check HOMEPATH environment variable then Check HOMEDRIVE environment variable then Check WINDIR environment variable then Check !DIR system variable 3) CONFIGURATION FILES ARE NOT STANDARD SAV FILES: Do not try to restore a saved Navigator Configuration File with the "Restore Session" dialog. This will result in an error similar to: % Identifiers can only be added or deleted at the main level: NAV_CONFIG. % TMRESTORETOOLS: /depot/devo/wavecl/manuel/vdatools/navigator1.sav: Bad VDA Tool Restore File. Use the "Restore Configuration File" dialog. 4) REVIEW TOOL DEFAULTS AFTER ADDING TOOLS TO THE NAVIGATOR: After adding a tool to the Navigator, exit the configuration mode and use the Defaults menu to review the settings for the added tool. Specifically, the "Number of Allowable Variables" setting will be set to "One and Only One". This setting is not appropriate for all tools. 5) SAVING CUSTOM COLORS IN NAVIGATOR SESSIONS: Color table information is not normally stored in Navigator session save files. If you have made changes to the color table that you wish to have restored when you restore your Navigator session then make sure the WzColorEdit tool is open and included when you save your session and your changes will be restored when the session is restored. VDA TOOLS 1) GRAPHICAL ELEMENTS OUTSIDE WINDOW: if you move a graphical element outside the window, or give it some coordinates outside the window, it will seem to 'disappear'. 2) X COLOR RESOURCES: With the ease of use found in VDA Tools, one can more easily experience problems with color tables and display of images. In X, colors are a resource many applications compete for. To check your color usage, bring up WzColorEdit to see how many colors your PV-WAVE session acquired and deal with it as appropriate. Resolution of a color table conflict may include: shutting down the Navigator or VDA Tools, issuing a "DEVICE, /Close" command, and restarting the Navigator or VDA Tools; closing or iconifying other applications on the screen; or issuing a "WINDOWS, Colors = -N" command before starting the Navigator or VDA Tools. To get more information on how color tables are set, read "How PV-WAVE Allocates the Colormap," X Window System, Appendix B: Output Devices and Window Systems, PV-WAVE Reference Guide. 3) WZANIMATE CAN STACK UP EVENTS: When running the WzAnimate tool it is possible for events to stack up in the event queue, making it difficult to interact with the tool. The best solution is to be patient and wait for the event queue to clear. 4) WZHISTOGRAM WITH SMALL BIN SIZES: When the Bin Sizes of the WzHistogram tool are specified to be extremely small (i.e. <=0.001) then the selected data may not appear to be selected. 5) WZMULTIVIEW VIEW ELEMENTS: When a view element is added to the WzMultiView tool which contains graphical elements (lines, boxes, legends, or axes) that are not in DATA coordinates, those objects will be improperly displayed inside WzMultiView. To correct this problem change the coordinate system of the dislocated objects to DATA in the tool which contains the graphical elements. 6) UNSELECTABLE GRAPHICAL ELEMENTS IN WZPLOT AFTER WZMULTIVIEW: If WzPlot is used as a view element in WzMultiView, and WzPlot has graphical elements in it, after WzMultiView redraws, the graphical elements inside the original WzPlot tool appear to be unselectable. This is due to the implementation of the TM_DISPLAY method for WzPlot. Simply redraw the WzPlot tool after WzMultiView has completed and select the desired graphical elements. 7) DEFAULT VDATOOL RESOURCES: To allow users to override resources such as color and font specifications, the VDA Tools class resource file wave/xres/!LANG/vdatools/VDATools is loaded by the X system upon VDA Tools initialization. However, because of resource caching features in CDE (Common Desktop Environment) and other desktop environments, this file may not be loaded and the default resources not available to VDA Tools. If this is the case, load the file explicitly with the 'xrdb -merge' command. These resources can be saved in the resource cache by creating a new Home Session (or the equivalent for non-CDE desktops). 8) VARIABLE NAME REQUIREMENTS: When naming variables using the VDA Tools, be sure to only create valid variable names. A legal variable name has the following characteristics: o Each name must begin with a letter and may contain from one to 31 characters. o The second and following characters may be a letter, digit, the underscore character, or the dollar sign. o A variable name may not contain embedded spaces. o A variable may not have the same name as a function or reserved word. A list of reserved words may be found in the "PV-WAVE Programmer's Guide". A variable created with a name that violates these rules will behave in an undefined manner. 9) ROTATED TEXT ELEMENTS ON X11R5 SERVERS: When using the VDA Tools with hardware fonts (!P.Font = 0) on an X11R5 server, characters in a rotated text grael will not appear rotated, although the string will appear along the correct baseline. This is due to font limitations in X11R5. In addition, the length of the text will not correspond to the length of the baseline (the text is usually much longer). This is because the string is displayed in the correct font size for a properly rotated string. When printing to a PostScript printer, the string will appear with the correct length and rotation. Using rotatable (XLFD) fonts, which are supported by X11R6 font servers, will solve these problems. 10) THE X SERVER NEEDS TO BE STARTED IN PSEUDOCOLOR MODE: The X server root window should default to PseudoColor mode at startup. To find which mode your X server defaults to, check the output from xdpyinfo. The default setting for 'depth of root window' must be '8 planes'. If your default is '24 planes' and you have defined DEVICE in your PV-WAVE session to be either 'PSEUDO=8' or 'GRAY=8', you may see the following error when defining PV-WAVE widgets: % X windows protocol error: (BadValue (integer parameter out of range for operation)). In isolated cases, displaying a widget after seeing this error may cause the X server to restart. If xdpyinfo shows that your root window's default is 24 planes: 1. Copy the file /usr/dt/config/Xservers to /etc/dt/config/Xservers. 2. Edit the file /etc/dt/config/Xservers. Find a line that looks something like this (normally the last line): :0 Local local@console /usr/bin/X11/X :0 3. Add '-cc PseudoColor' to the end: :0 Local local@console /usr/bin/X11/X :0 -cc PseudoColor 4. Reboot the machine. NOTE: Instructions given here involving the Xservers file and the X startup flag may be slightly different, depending on your OS and site configuration. For information on your system, read the header of the Xservers file, read the man entry for 'Xserver' or consult a manual. 11) WZCOLOREDIT: CUSTOM PLOT COLORS NOT RESTORED WITH CUSTOM COLOR TABLES: Normally, when you save and restore a custom color table using WzColorEdit both the plot colors and the color table are saved and restored. The information for these two sets of colors is stored in two separate files ($HOME/.wgcolors and $HOME/.wg_plot_colors). It is possible, by deleting one of these files and not the other and then saving a new color table, for these files to get out of synch. Once this happens there is really no way to get them back in synch unless you delete them both and start over. If they are out of synch, when you restore a custom color table your plot colors will revert back to the default set. IMAGE MODULE OPTION 1) IMAGE_DISPLAY: NOT ENOUGH COLORS ERROR: If there are not enough colors to display the image, IMAGE_DISPLAY will issue the following message: IMAGE_DISPLAY: Not enough colors available for colormap. The image will continue to be displayed but may be lacking some colors, depending on how many are available. 2) IMAGE_DISPLAY ANIMATE KEYWORD DOES NOT WORK ON WINDOWS: On Windows-NT or Windows 95, the /Animate keyword does not work when used with IMAGE_DISPLAY. If used, only the first frame of the array of images is displayed. 3) DICOM IMAGE FILE SUPPORT The DICOM image file type is currently not available for OpenVMS. ONLINE HELP 1) SETTING THE WAVEBROWSER ENVIRONMENT VARIABLE FOR UNIX Define the environment variable WAVEBROWSER on UNIX to choose the browser to be used by PV-WAVE browser-based online help system. If this environment variable is not set, online help will attempt to locate a Mozilla or Netscape browser on your system. 2) WINDOWS ONLINE HELP BROWSER SECURITY SETTINGS Windows Online Help has changed for PV-WAVE 9.0 in order to accommodate Microsoft Internet Explorer 7.0 added security requirements. When you use any command to start Online Help, you may see the browser warning: "To help protect your security, Internet Explorer has restricted this webpage from running scripts or ActiveX controls that could access your computer." In some instances, the request for the help page may time out before you respond. You may either try the help command again and respond more quickly or you can avoid the prompt altogether if you choose to enable the browser option: Tools->Internet Options->Advanced-> Security->'Allow active content to run in files on My Computer.' 3) OPENVMS ONLINE HELP As of PV-WAVE version 8.51b, the Online Help requires a browser to view. To access Online Help, set the symbol WAVEBROWSER to define your browser's startup command. For example, if you normally start your browser using the command @SYS$COMMON:[CSWB]MOZILLA, add the following line to your SYS$LOGIN:LOGIN.COM: WAVEBROWSER :== @SYS$COMMON:[CSWB]MOZILLA The command 'help, ' issued from the WAVE> prompt for accessing individual command documentation is enabled, as well as VDAtools context sensitive help. To access the Online Help Table of Contents, type 'help' at the WAVE> prompt or click on the 'TOC' button from an Online Help page. The Online Help interface available in previous versions of PV-WAVE for OpenVMS systems (HyperHelp) is no longer being used. To access further documentation, use PV-WAVE Manuals Online PDF files by typing 'help, /doc' from the WAVE> prompt. OpenVMS browsers convert file paths to Unix-style paths. PV-WAVE Online Help attempts to convert VNI_DIR (used to define the base URL for help files) to this Unix style path. If your Online Help fails to start due to path issues caused by this automatic conversion, please set an additional symbol, WAVEHELPURL, to a Unix style path version of your VNI_DIR. For example, if your VNI_DIR is: _DNFS2:[CLIENT.WAVECL], set WAVEHELPURL to be /_dnfs2/client/wavecl. WAVEHELPURL :== /_dnfs2/client/wavecl If HTML Online Help initially starts up correctly, there is no need to set WAVEHELPURL. IF PV-WAVE DEBUGGER CRASHES ON STARTUP The PV-WAVE Debugger, wavedbg, is an Tcl/Tk application and requires a minimum number of colors to be available. If you have color intensive applications such as a Web Browser, Online Help or even PV-WAVE running when you try to start wavedbg, it may not be able to start. Close the applications and start the PV-WAVE Debugger again. SAVED FILE ISSUES 1) SAVE, /ALL CAN BE DANGEROUS This is mentioned in the documentation for the SAVE routine, but it's worth repeating here. Using the /All keyword to the SAVE routine will not only save all the variables, common blocks and system variables in the current session, but also all PV-WAVE routines(routines stored in .pro/.cpr files) loaded/used in that session. After the saved file is restored, the version of the routine stored in the saved file will be resident in PV-WAVE. So, if you use the /All keyword to create a save file in PV-WAVE 5.00 and then restore it in PV-WAVE 8.00 or later you will be using the 5.00 versions of any PV-WAVE routines that were included in the saved file. We suggest that you either use the more explicit keywords to the SAVE routine to save only those items that you actually want or call DELFUNC,/All and DELPROC,/ALL before saving the file or after restoring it to assure that you are always using the latest versions of all PV-WAVE routines. 2) STRUCTURE CONFLICTS ON RESTORE Certain functional improvements made to PV-WAVE for the 8.00 release required modifications to a number of system variable structures. This meant that certain system variables stored in files saved in pre-8.x versions of PV-WAVE could create conflicts when they were restored in PV-WAVE 8.x or later. To avoid this, we test each of the system variable structures when files are restored, rename any problem structures to a temporary name and move the old data into the new structure manually. Unfortunately, in PV-WAVE 8.x, the temporary structures were allowed to persist. Further changes to the !P structure for PV-WAVE version 9.00 can now cause conflicts between versions of the temporary structure PLT_751 in somewhat rare cases. (A lot of steps are needed to produce this, multiple saves and restores across multiple versions of PV-WAVE, etc.) If you are restoring an old saved file and get a message about conflicts with the PLT_751 structure, simply issue the following command before attempting to restore the saved file: WAVE>DELSTRUCT, /Rename, "PLT_751" This will eliminate the conflicting structures in the current session and allow you to restore the file. Use !QUIET if you do this programatically and do not wish to see messages if the PLT_751 structure doesn't actually exist in your session. To populate current system variables from old copies of them stored by older PV-WAVE versions, see the routine wave/lib/user/fix_sysvar.pro for more information. OPENVMS TIPS 1) MOTIF LEVEL VERIFICATION: to determine what level of Motif is available, enter the following: @sys$update:decw$versions show symbol decw$xlib_version 2) X LIBRARY ERRORS: Changes to Motif and Xlib in the currently supported OpenVMS version can lead to X events getting processed out of order. The result is that the Xlib gets confused and may lock up, often issuing the error: Xlib: unexpected async reply (sequence 0xXXXX) This issue has been addressed by HP in OpenVMS version 8.3 with Motif version 1.6 (See the Motif 1.6 release notes). We will not know if it has been truly resolved until PV-WAVE has been fully tested on the latest OpenVMS version. Our observations have led us to believe that this issue involves a race condition that occurs when large numbers of X events are rapidly generated by a PV-WAVE application. We have seen this behavior most often in fast-moving animations. HP Integrity OpenVMS - ITANIUM (ia64), G FLOAT VERSION (iagvms) TIPS 1) G_FLOAT VS IEEE_FLOAT AND DIVIDE BY ZERO EXCEPTION ISSUES: Even though the iagvms version of PV-WAVE is built using the G-float specification, the system math libraries internally convert all floating-point values to the IEEE floating-point format. This potentially eliminates any advantages that the G-float format may offer. Possibly related to this internal conversion, the G-float divide by zero exception behavior has changed compared to the behavior of the older ALPHA axpvms systems. On G-float axpvms, a floating-point divide by zero causes an exception to be thrown which is then caught by PV-WAVE's exception handlers. The exception is issued once by the system, the PV-WAVE handler prints the message, the result of the bad division is forced to 0.0 by the system and control returns to the PV-WAVE command line. On the iagvms system, the floating divide by zero exception is thrown repeatedly, forever, regardless of any exception handlers. PV-WAVE prints only the first eight exception messages and then appears to hang. Behind the scenes, the system is continuing to throw the divide by zero exception and not allowing control to return to PV-WAVE. The only way to get out of this situation is to hit CTRL-C, leading to a dump, or kill the process. This has been reported to HP and we are awaiting a response. In the meantime, we have added many tests to the PV-WAVE kernel in an attempt to prevent divide by zero exceptions from getting thrown on the iagvms platform. If you experience the behavior described above from any PV-WAVE routines, please let us know by contacting PV-WAVE technical support. The IEEE floating-point version of PV-WAVE on the HP Integrity system (iaevms) does not show this behavior. DIGITAL UNIX TIPS No tips exist at this time. HEWLETT-PACKARD HP-UX TIPS When issuing commands that will get sent to the shell (file manipulation, changing directories, etc.), the tilde ("~") character may not get resolved correctly by the shell. You should use the full path. RED HAT LINUX TIPS 1) X VISUAL CLASS SUPPORT: Version 3.3.3.1 of XFREE86 does not support visual class overlays. As a result the visual class (DirectColor, TrueColor, PseudoColor, etc.) that the X Server is started in is the only one available to PV-WAVE. Hence, commands like "DEVICE, Pseudo=8" will result in an error message. From the XFree86 FAQ (www.XFree86.org/FAQ/): Q.A16- Are Overlay Visuals available? Some X servers offer multiple visuals as overlays (e.g., 8bpp PseudoColor and 24bpp TrueColor). At this point XFree86 doesn't support Overlays, but we are working on this feature for XFree86-4.0. 2) WIDGET EVENTS: The X event handler may change the order in which certain mouse events are handled. This may cause problems in applications that were written on systems that handled the events in a different order. This behavior is most notable for the one-of-many radio buttons. On Linux the unsetting of the previous button takes place after the setting of the new button. This causes the callback for the previously selected button to be the last one executed. If you included a test for this situation in the callback then the application acts as though that button had just been set. 3) THREE-BUTTON MOUSE EMULATION USING A TWO-BUTTON MOUSE: Wherever MB2 (Mouse Button 2) is referenced in PV-WAVE documentation, depress both buttons on a two-button mouse simultaneously to emulate MB2. To activate this emulation, the entries for "Emulate3Buttons" and "Emulate3Timeout" must be uncommented in the configuration file XF86Config. 4) BESELY FUNCTION FAILS ON RED HAT LINUX: Due to a bug in the Linux system routine y0 (BesselY), the PV-WAVE function BESELY returns incorrect results for some input values on Red Hat Linux. If you have the PV-WAVE:IMSL Mathematics Toolkit, use the BESSY function therein. MICROSOFT WINDOWS GENERAL TIPS 1) MINIMUM RESOLUTION 1024x768: Running PV-WAVE at resolutions less than 1024x768 is not supported. We do not anticipate problems running at lower resolutions; however, the PV-WAVE demos and tutorial examples all require at least 1024x768 for proper operation. 2) SPAWN IDIOSYNCRASIES: The functions EXEC_ON_SELECT and SELECT_READ_LUN will not work when a PV-WAVE Widget application is running. This is due to an interaction between the event loop and the PV-WAVE facility used to detect input on a file descriptor. 3) OCTAL STRING CONSTANTS: The back-slash character (\) is used as a file path delimiter under Windows. It also is used in PV-WAVE Strings as a prefix to an Octal constant, using the form \nnn, where nnn is an Octal value. To prevent confusion when specifying strings containing a filename, use \\ (two backslashes) to generate an escape for the backslash character (especially when the filenames begin with numbers). For example, 'C:\data\070197.dat' will not generate the expected filename. Use 'C:\\data\\070197.dat' instead. 4) SLOW GET_KBRD RESPONSE: The GET_KBRD function, as used by the HAK command, is slow to respond to key presses. Response should be immediate, but it may take 3-4 seconds for the key press to "register". 5) DC_READ_DIB AND COLOR PALETTE INCONSISTENCIES: Due to a problem with the way DC_READ_DIB maps its internal palette onto the Windows system palette, the image data that results from a call to this function can differ substantially between calls, even when the same DIB file is being loaded. An easy work-around for this is to activate a PV-WAVE graphics window and load a PV-WAVE color table before every call to DC_READ_DIB(). The color table you load prior to the DC_READ_DIB() call should be the same each time - for example, you could always use LOADCT, 0. We recommend that you use WREAD_DIB instead of DC_READ_DIB. 6) HARDWARE FONTS AND SET_GRAPHICS_FUNCTION: Windows "hardware" fonts are not affected by the current graphics function. This means that you cannot erase drawn text with an XOR operation if hardware fonts are used. This is a limitation of Windows. The only exception is the graphics function GXnoop, which works correctly. 7) COLOR MODEL ON WINDOWS: The Win32 driver gives the user access to all 256 colors in the color table regardless of the current video mode. This allows functions like TVRD to obtain consistent results regardless of which color model the Windows video driver is currently using. As a result, use of the "Colors" keyword to the "Window" procedure is now ignored. On 256-color drivers, Windows reserves 20 colors to use in drawing User Interface components; the PV-WAVE driver compensates by mapping 20 of the color table colors to their nearest RGB color. On high-color graphics drivers, all color table colors are displayed. 8) RETAINED WINDOWS: Older versions of the Win32 driver supported the /Retain and /NoRetain keywords to the WINDOW procedure to control whether a bitmap backing store was allocated by the driver. The current driver uses the CreateDIBSection Win32 API call to allocate a backing store for every PV-WAVE graphics window. In effect, every window is created with the "Retain" keyword and the "NoRetain" keyword is ignored. 9) COLOR MAPS: In 256-color video modes, "banding" of visible colors may appear in PV-WAVE windows. This is highly dependent on the monitor and video card in use. Adjusting the monitor or the video card may eliminate the problem. This should not occur in 16-bit or 24-bit video modes. 10) DESENSITIZED WWOPTIONMENU: When the WwOptionMenu has been desensitized it does not appear "greyed out". It is however, deactivated, as would be expected. 11) MB2 IS SHIFT-MB1: Wherever MB2 (Mouse Button 2) is referenced in PV-WAVE documentation, you may use SHIFT-MB1 on your two button mouse as a substitute. 12) WWCOMMAND WIDGET GETVALUES: Due to implementation constraints in the WwCommand widget on Windows the method used for getting the array of items in the list has changed. The parameters used in the user written enteredCallback are now shell and listbox. Your callback to get the values would look like: PRO CommandOK, wid, shell ; old way ; value = WwGetValue(wid) ; New Way status = WwListUtils(shell, value, /GetItems) Print, value END This widget has been provided for compatibility issues. 13) PRINTING FROM A GRAPHICS WINDOW TO A POSTSCRIPT PRINTER: When printing from a graphics window with a colored background, the background color of the printed page is translated to black. This will make any other colored graphics in the window invisible on the printed page. When displaying plots that you plan to print in PostScript, use the background keyword to set the background color to white. For example: PLOT, X, background=255 14) INTERMITTENT DIALOG TIMING PROBLEMS: There may be intermittent problems when dismissing dialogs created with the Ww routines (including the VDA Tools). This is caused by differences between the X and Win32 windowing systems, resulting in some timing inconsistencies in dialog closure. If you see a series of error messages immediately after dismissing a dialog and activating another window, we recommend that you save your work immediately and start a new PV-WAVE session. This situation is especially likely to occur when you hit the "OK" button, and then activate another window before the application is able to process the callbacks associated with the dialog. Instead of simply pressing the "OK" button, we suggest you do one of two things: a. Press the "OK" button, and wait until the dialog disappears before doing anything else in PV-WAVE, or b. Press the "Apply" button, wait for any changes to take effect, and then press the "Cancel" button to dismiss the dialog. We regret any inconvenience this may cause and are working to provide a solution as soon as possible. Please contact Technical Support if you encounter this problem, or if you need to be contacted when a solution is available. 15) X TOOLKIT ERRORS FROM TOOL ICONS IN NAVIGATOR: When new tools are added to the Navigator or when a navigator configuration is restored, the following error may be seen: X Toolkit Error: Widget tools has zero width and/or height This error can safely be ignored. 16) NEED TO TRIPLE-CLICK CONFIGURATION ICONS IN NAVIGATOR: When the Navigator is in Configure mode, it is necessary to triple-click on the tool icon to make the tool attributes dialog appear. 17) TRUETYPE FONTS IN VIEW ELEMENTS: Since TrueType fonts are specified by point size, they are not scaled when displayed as part of a view element. It is best to use software fonts for this purpose. 18) WWALERT BLOCKS COMMAND LINE AFTER DISMISSED: If a WwAlert is created by a non-blocking application and the /NoWait keyword is NOT used, dismissing it via the Delete ("X") button or the Close menu item will cause PV-WAVE command line access to be blocked until the application exits. To prevent this, use the keyword /NoSystemMenu in the call to WwAlert. The NoSystemMenu keyword will cause the dialog to be displayed without the system menu and associated buttons (maximize, minimize, and delete) on its title bar. In this case a button must be provided to allow removal of the dialog. 19) DRAWING INTO NON PV-WAVE WINDOWS (set_win_id): Unlike UNIX, the Windows OS does not allow applications to draw or interact with windows owned by other processes. In order to have PV-WAVE draw into a window created by another application via the WINDOW,set_win_id= command, a parent-child relationship must exist between the PV-WAVE process and the process that owns the window. We have customers who have been able to accomplish this by having the process that owns the drawing area spawn the PV-WAVE process as well. We hope to have more information on the necessary relationships and some tips for how to create them in the near future as we investigate this behavior more thoroughly. 20) IF YOU INSTALL PV-WAVE IN A DIRECTORY WITH SPACES IN THE PATH: When you get your permanent license keys, you must place quotes around the path to the vendor daemon on the DAEMON line. Example: DAEMON "c:\Program Files\VNI\license\bin\bin.i386nt\VNI.exe" 21) INTERAPP UNSUPPORTED WITH FORTRAN ON WINDOWS: Interapplication communication method CWAVEFOR is no longer supported on Windows platforms (the OPI and LINKNLOAD methods have never been supported). CWAVEFOR on Windows is supported using the PowerStation 4.0 compiler, which is no longer available and has since become Compaq's Visual Fortran. There are customers who have reported using Compaq Visual Fortran 6.6 to successfully run the examples in wave\demo\interapp\win32\cwavefor, but this is untested (and therefore unsupported) by Visual Numerics. The on-line Tips database at http://www.vni.com/tech/pvw/tips.html has example work-around solutions for Fortran interapplication communication using OPI and LINKNLOAD on Windows. 22) SQL SERVER BOUND OUTPUT PARAMETERS MUST BE UNDEFINED When binding output parameters to a stored procedure via the ODBC_BIND_PARAMS function, users must use undefined variables for all output parameter markers. For example: ; declare an output parameter marker stmt = ODBC_PREPARE(oid2,"{call TestParm(?)}") ; Bind myvar to the marker param_list = ODBC_BIND_PARAMS(oid2,stmt,'TestParm',myvar) In this case, myvar must be undefined for the ODBC_BIND_PARAMS function to work properly. The best method to ensure a variable is undefined is to use DELVAR just before the call to ODBC_BIND_PARAMS: DELVAR, myvar param_list = ODBC_BIND_PARAMS(oid2,stmt,'TestParm',myvar) Unfortunately, this workaround does not work on Vista. You will not be able to bind output parameters using ODBC_BIND_PARAMS on this platform, at this time. 23) SQL SERVER 2005 NVARCHAR DATA TYPE UNSUPPORTED PV-WAVE version 9.0 does not officially support SQL SERVER 2005. In addition to the Bound parameters issue (item 22 above), the NVARCHAR data type is not supported. As a workaround for tables that use NVARCHAR data types, a PV-WAVE user can declare the columns to be of type VARCHAR instead of NVARCHAR. WINDOWS 64-BIT TIPS 1) No MS EXCEL OR ACCESS ODBC DRIVERS: At the time of the PV-WAVE 9.0 release, ODBC drivers for MS Excel and MS Access were not available. While this means that we were not able to test the PV-WAVE ODBC implementation with these drivers, we do not anticipate any problems when they do become available. If you do have problems with either of these drivers on Windows 64-bit, please contact VNI technical support. 2) RUNNING 32-BIT PV-WAVE ON X64/AMD64 CHIPS: We haven't run into any major problems running the 32-bit version of PV-WAVE on the 64-bit chips using the AMD64 instruction set. In general, the support for 32-bit applications on these chips is good. However, the 32-bit version of PV-WAVE is built on and for a different chip, using a different instruction set. Because of this, you may run into problems when running in this configuration. We would like to know about them and we will do what we can to fix them. However, problems that appear only in this configuration and not when running on the native chipset are, most likely, out of our hands. 3) OPI PROGRAMMING ON 64-BIT WINDOWS: Important information about transferring data between a C application and PV-WAVE on 64-BIT Windows can be found in the PV-WAVE Programmer's Guide under 'Constants and Variables'. PV-WAVE AND LAPTOP COMPUTERS 1) SPECIAL LICENSES FOR LAPTOP COMPUTERS: PV-WAVE's license management requires that it be able to connect to a running license server. This causes problems for machines, such as laptop computers, that need to run PV-WAVE while disconnected from the network on which the license server is running. For licensing purposes these machines should be treated as 'stand-alone' boxes. This means that you will need to get special license keys from VNI which are uncounted and node-locked to the particular laptop. These licenses will not require a license server to be running and will allow PV-WAVE to start when the machine is disconnected from the network. To get one of these license, contact Visual Numerics technical support at 720-407-4201. You will need to have the laptop machine available during this call. 2) DNS TIMEOUTS ON LAPTOP COMPUTERS: Even though laptop licenses will not require a license server, the license manager attempts to contact a DNS server whenever PV-WAVE is started. This becomes a problem when starting PV-WAVE when the laptop is disconnected from the network. Delays of up to three minutes have been observed. This 'DNS Delay', as it is referred to by the makers of the license manager can be avoided by setting the environment variable "LM_NO_NETWORK". On Windows, We found it convenient to create a small batch file called portable_wave.bat containing the following lines: (example assumes Windows 32-bit wave installed in c:\vni) @echo off set LM_NO_NETWORK=1 c:\vni\wave\bin\bin.i386nt\wavewin2.exe exit We created a desktop shortcut to this batch file and set its properties (right click on it) to "run minimized" and "close on exit" to prevent a DOS window from appearing on the desktop. We also selected the wavewin2.exe icon for the shortcut by using the "change icon" button in the shortcut properties dialog and typing in c:\vni\wave\bin\bin.i386nt\wavewin2.exe as the icon file. You would use this shortcut to start PV-WAVE whenever your laptop is in portable mode. The technique outlined above is also valid for other operating systems with the appropriate modifications. MICROSOFT WINDOWS TIPS 1) WPRINT COMMAND AND NETWORK PRINT SERVERS: When using the WPRINT command with the Printer="\\\" keyword to send the output to a networked printer, you must use three backwhacks(\) before the . e.g Printer="\\\\". To help you to diagnose problems, if the printer specified is not found an error message will display the printer name the OS tried to use. 2) MICROSOFT WINDOWS ODBC TIPS PROBLEM WITH CONSECUTIVE NULL VALUES IN FORMATTED COLUMNS(ORACLE) Example number 1 in the online help for the ODBC_SQL routine fails for the 'COMM' column of the example 'EMP' table provided by Oracle. The problem is when a formatted number column has NULL values in consecutive rows. In cases where null numeric fields are known to exist, the NVL function maybe used to replace nulls in a select statement with a value for missing data which can be filtered after the data are returned. For example: Select EMPNO, NVL(COMM, 9999999) from EMP will return "9999999" for the value of COMM wherever COMM has NULLs in the EMP table. Such values should be filtered rather than entered in computations. Or, in cases where NULLS on COMM would be treated the same as zero value, select EMPNO, NVL(COMM, 0) from EMP should work as well. SILICON GRAPHICS IRIX TIPS 1) HARDWARE-DEPENDENT MATH ERROR HANDLING: "Floating illegal operand" arithmetic errors are caused by a sensitivity to NaN comparisons when using some of the PV-WAVE Mathematics and Statistics routines. The returned values are correct and you may disable the arithmetic trapping by using the following PV-WAVE Advantage command: WAVE> junk = CHECK_MATH (Trap=0) SUN SOLARIS TIPS These tips apply to SPARC hardware architectures running the Solaris operating system. 1) PROBLEMS WITH MULTIPLE 'DEVICE' CALLS: This problem occurs on certain Solaris 9 and 10 machines, specifically, those with a default LANG/locale setting of something other than 'C'. Calling the DEVICE procedure after any graphical ouput can lead to instability and even segmentation violations. Basically, you should issue any DEVICE commands first-thing in your application and then use a flag or some other mechanism to avoid re-issuing subsequent DEVICE commands. This applies even if the subsequent DEVICE commands duplicate the current settings. We are looking closely at this problem and hope to have a fix available. 2) LOADING OPTIONS: Always load the Image, IP or GTGRID options before loading the Math and Statistics options. If the options are not loaded in this order, you may see an error similar to this: % LOAD_OPTION: Error loading sharable executable: /usr/vni/image-1_0/bin/bin.solaris/option_routines.so. % LOAD_OPTION: Error loading sharable executable. Symbol: FILEIO_COLOR_QUANTIZE, File = /usr/vni/image-1_0/bin/bin.solaris/option_routines.so Bad symbol % IMAGE_INIT: Unable to load Image options. Sometimes this order changes for specific machines. This problem has been resolved for most platforms, but if you experience this problem, try varying the order of your initializations. DBLINK TIPS (UNIX) 1) DB_SQL ERROR ON SYBASE WHEN NO COLUMN OR ROWS RETURNED FROM QUERY If your query does not return valid columns or fields as in 'select count(*) from table' you will receive an error message. EXAMPLE: WAVE> test=DB_SQL(hcon,'select count(*) from authors') % DB_SQL: SYBASE SQL FAIL: Invalid column alias specified % Execution halted at $MAIN$ (DB_SQL). You can avoid the problem by structuring your query such that it returns a count for a particular column as opposed to the entire table, or reading the entire table into PV-WAVE and generating your count from there. GENERAL PROGRAMMING TIPS 1) STRSPLIT In some incidents STRSPLIT returned a scalar. Now it always returns a string array. To check the first element of the returned value refer to it as "ret_value(0)" in your code. 64-BIT TIPS 1) VISUALIZATION TOOLKIT (VTK) : The VTK toolkit shipped with 64-bit PV-WAVE is currently built as a 32-bit application. The VTK application is spawned by the PV-WAVE process as a separate process. The two processes pass data to each other via ASCII files. This means that it is possible for 64-bit PV-WAVE to output a LONG value that can not be properly read and stored by VTK. You should be aware of this and consider sending suspect values as FLOATS or DOUBLES. 2) PV-WAVE SAVED FILES: Some LONG values can not be saved to a file via the PV-WAVE SAVE command. This is a limitation of the current XDR implementation with which PV-WAVE users on AXPOSF may already be familiar. You are able to save LONG variables, but only if the values those variables contain fall completely into the least-significant 4 bytes of the variable's data space. If a LONG variable contains a value that falls outside of this limitation (the max range of a 4-byte integer: -2,147,483,647 to 2,147,483,647) , the save fails and an error message is printed. It should also be noted that widget ID's are LONG values. This can affect attempts to save VDA tools that have stored widget ID's within their TM attributes. A workaround is to store the widget ID's in a temporary variable and zero the value stored in the TM attribute. You can then restore the value(s) once the TMSAVETOOLS procedure has completed. 3) BYTE SWAPPING The BYTEORDER function lswap keyword now works for 8 byte longs, however, you should be aware that a "network long" is only 4 bytes. This means that using the /ntohl and /htonl keywords on an 8 byte long will cause it to be truncated at 4 bytes. 4) READING BINARY FILES A new function "READU_32" was added to accommodate reading 4 byte integer values on a 64 bit system. READU_32 reads a long data type as a 4-byte value from the given input stream. It is useful in reading 32-bit Longs on a 64-bit system. In addition, it can be used to read any other Wave data types. 5) f77_unformatted FILES: In 64-bit PV-WAVE, the leading and trailing byte counts in f77_unformatted files are 8 byte longwords. The FORTRAN spec says that these files are processor and machine dependent, and they are in PV-WAVE as well. 6) STRUCTURE ELEMENT PADDING IN BINARY FILES: When writing a PV-WAVE structure to a binary file, the WRITEU routine strips out any alignment padding that may exist in memory between structure elements. The READ routines expect this and place each structure element at the appropriate memory location when the file is read back into a PV-WAVE structure. However, when you write a C structure to a binary file as a single unit it may contain padding that does not match what the PV-WAVE READ routines expect. To avoid problems, you can either add dummy elements to the PV-WAVE structure you send to the READ routine or, more easily, write out the C structure one element at a time, thus eliminating any padding between elements. 7) XDR FILE LIMITATIONS: The current implementation of XDR in PV-WAVE limits the size of longs to 4 bytes to ensure cross-platform compatibility. 8-byte longs will be truncated to 4 bytes when they are written to the file. If the 8-byte value is large enough to use the higher order 4 bytes, XDR will issue an error and the file will not be written. See the tip about PV-WAVE SAVED FILES, above. 8) READU_32 ROUTINE: This is a new routine designed to ease the transition from 32-bit PV-WAVE to 64-bit PV-WAVE. If you have binary files that were created on a 32-bit system and contain 4-byte PV-WAVE longs you will need to use READU_32 to read these values back into 8-byte PV-WAVE longs. When this routine is passed a variable of type LONG it will read only 4 bytes from the file, expand it into an 8-byte value and perform any byte-swapping that needs to be done. It can also handle the datatypes that did not change with the move to 64-bits. You should not use this routine to read binary files that contain 8-byte long values, since only the first 4 bytes will be read. 9) FORTRAN INTERAPP ON LINUX64 There is a problem with passing float data from PV-WAVE to a FORTRAN application. At some point during the transfer the data appears to be promoted to double values despite compiler settings that should prevent this. We are still investigating this behavior, but for now the workaround is to use double values when passing floating-point data between these processes. INTEL EM64T RED HAT ENTERPRISE LINUX 4 1) IMAGE PROCESSING TOOLKIT: This toolkit requires that the libstdc++.so.5 library be installed on your system. It is available in the compat-libstdc++-33-3.2.3-47.3.x86_64.rpm package. This library is not required if you do not plan to use the Image Processing Toolkit (IP). VISUALIZATION TOOLKIT (VTK) TIPS Tips and release notes for the PV-WAVE Visualization Toolkit (VTK) are located in the vtk OPI directory in your VNI_DIR. VDATOOLS CROSS-PLATFORM PRINT OPTIONS ISSUES UNDER UNIX 1) If you are running VDAtools on different platforms, you may experience the Print Options dialog displaying the page layout incorrectly. In this case, remove the file named .wzprint in your home directory. It will be recreated next time you print or select File->Print from a VDAtool. DOCUMENTATION ERRATA 1) Installation Guide: Obtaining hostname and hostid on Windows On page 25 in the PV-WAVE 9.0 Installation Guide under "Obtaining Your License File", the instructions for Windows are incorrect. The argument to 'get_hostid_Intel' is wrong. The correct instructions are as follows: To gather the hostname and hostid of your machine, do the following: On Windows, do the following: a. Open a command prompt. b. At the prompt, enter the following: CD \license\bin get_hostid_Intel A file called "hostinfo.name", where name is the name of your machine, is generated in your \license\bin directory containing the information you will need. is the directory where PV-WAVE is installed. Edit this file as appropriate. 2) CORRELOGRAM routine. CORRELOGRAM is a new standard library procedure for plotting either autocorrelation function (ACF) values or partial autocorrelation function (PACF) values associated with data from a time series. Documentation for this routine does not yet exist in the PV-WAVE Help system. To view the documentation, enter the following command at the PV-WAVE prompt: DOCS, "correlogram" 3) CLUSTBOX function has two new keywords Refi and Irrg: refi - 2-element integer array: refi invokes keyword fine which produces a partition defined by integer q; and then finer partitions are sought by incrementing the current solution r (initially r=q) in steps of refi(0) until an uninterrupted sequence of refi(1) steps fails to produce a better solution; sometimes it is useful to express refi(0) as a fraction of q; if refi(0) is a floating point value in the range [0,1) then the algorithm will replace it with integer refi(0)*q and proceed as before; irrg - if set, then the clustering algorithm adapts to irregular domains by allowing empty boxes but ensuring that the nonempty boxes form a face-connected subset of the partition; 4) BAR3D routine. The documentation for BAR3D lists an incorrect keyword name. The correct name for keyword 'ColorArray' is 'IndividualColors'. Every instance of 'ColorArray' in the BAR3D documentation needs to be replaced with 'IndividualColors', including the example. IndividualColors - Array of the same dimensions as heights where IndividualColors(i,j) is the colortable index to associate with heights(i,j). WINDOW, /Free, Xsize=800, Ysize=600, Title='PLOT and BAR3D' !P.multi = [0,2,0] PLOT, INDGEN(10), Title='Some Plot' xlabels = ['One', 'Two', 'Three', 'Four', 'Five'] ylabels = ['E', 'D', 'C', 'B', 'A'] xx = DIST(5) * RANDOMU(seed, 5,5) * 2 + 0.5 LOADCT, 0 TEK_COLOR ; Make a 5x5 array of random colortable indices, ranging 2-31 randColors = NINT(RANDOMU(s,5,5)*29 + 2) BAR3D, xx, Ax=75, Az=15, Title='Crop Yield Analysis', $ Xtitle='Plot Column', Xtickname=xlabels, Ytitle='Plot Row', $ Ytickname=ylabels, /CenterLabels, $ Ztitle='Seed Germination', Charsize=1.15, /Outline, Font=0, $ IndividualColors=randColors, Ticklen=-0.05, $ MainTitlePosition=[0.75, .95] 5) ERRCHECK routine. ERRCHECK is a new standard library function that makes it very easy to do exhaustive error checking in PV-WAVE functions or procedures. Documentation for this routine does not yet exist in the PV-WAVE Help system. To view the documentation, enter the following command at the PV-WAVE prompt: DOCS, "errcheck" 6) SOCKET_READ routine. The discussion of this routine in both the Reference manual and the Application Developer's Guide should include the following: The Returned Value is the number of bytes read from the socket or a negative value indicating an error. Note: The SOCKET_READ routine is blocking and will not return until the byte array passed to it is full or there is a problem with the connection. The Continuously Running Server example code in the Application Developer's Guide is incorrect, it should look like this: PRO SERVER port = 1500 socket = SOCKET_INIT(port) WHILE 1 DO BEGIN connection = SOCKET_ACCEPT(socket) FOR i = 0,2 DO BEGIN data = BYTARR(15) nbytes = 0 nbytes = SOCKET_READ(connection,data) IF nbytes GE 0 THEN BEGIN PRINT, 'SERVER received: ', STRING(data) data = BYTE('Server String ' + STRTRIM(STRING(i),2)) SOCKET_WRITE, connection, data PRINT, 'SERVER sent: ', data ENDIF ELSE BEGIN PRINT,'SOCKET_READ returned an error: ', !ERR_STRING PRINT,'Closing connection.' GOTO, reconnect ENDELSE ENDFOR reconnect: SOCKET_CLOSE, connection ENDWHILE SOCKET_CLOSE, socket END