THE COMPUTER TRANSITION SYSTEMS REPORT
November 1996


CONTENTS

COMPUTER TRANSITION SYSTEMS NEW WEB ADDRESS
NUMERICAL METHODS WEB SITE - a major web resource for all Fortran users
FORCHECK Version 12 - this premium static analyser now supports all of Fortran 90
FREE ELF90 - of particular interest to those on a budjet who want to learn Fortran 90
LF90 Special Upgrade Pricing - for F77L, F77LEM/32 and other 32 bit compiler owners
TECPLOT VERSION 7 - this excellent data visualization package is greatly improved
FORTRAN 90 for SUN SPARC - delivers fast executables and the price is modest cost
LF90 and EXCEL
INTERACTER VERSION 4 - a big upgrade for this library
FORTRAN 90 FEATURES by John Prentice - practical observations
TLIB for WINDOWS - a significant upgrade of this noted version control system

CATALOG SECTION


COMPUTER TRANSITION SYSTEMS NEW WEB ADDRESS
Our web site URL is now http://www.cts.com.au. It has the most up to date information on the products we carry as well as our catalog, copies of the most recent newsletters, copies of the update and fix files for Lahey Fortran compilers, the John Prentice article comparing Fortran 90 with C++, a page of useful Fortran information available on the web and a duplicate of an excellent numerical methods site run by Tomasz Plewa. We are interested in receiving your comments on our web site including errors, suggestions for improvement, and any difficulties in accessing it. One observation we can make is that the ALTAVISTA search engine (it is accessible from our home page) is very effective for searching software topics including finding the location of the web sites for particular software products.

NUMERICAL METHODS WEB SITE
Our web site has a duplicate of the excellent numerical methods produced by Tomasz Plewa. It contains an extensive list of references to web sites all over the world which have information of interest to Fortran programmers. Everyone who uses Fortran should really spend some time looking at what is referenced by this site. Topics covered include subroutine libraries (mostly public domain), sources of information on specific application areas such as computational fluid dynamics, finite elements, particle methods, graphics, data analysis and signal processing (chaos, wavelets, FFTs), arithmetic and statistics, optimization, multigrid methods, parallel libraries, Fortran utilities, stand alone commercial mathematical packages, journals, books on Fortran, courses/tutorials (F77, F90), standards (F77, F90, F95, F2000, HPF), frequently asked questions on Fortran, and benchmarking.

FORCHECK Version 12
FORCHECK is a powerful static analyser. It will substantially reduce the amount of time spent on code development and maintenance. Particularly those who work with programs of more than a few thousand lines will find it a vital tool.
In the four years since FORCHECK version 11 was announced there have been numerous releases which improve and optimize the analysis of Fortran programs. In the meantime Fortran 90 compilers have become available and FORCHECK users needed support for the all of the new facilities in Fortran 90. Though FORCHECK version 11 supported a number of Fortran 90 features comprehensive Fortran 90 support was lacking. Now FORCHECK version 12, with full Fortran 90 support, is ready for shipment. While Fortran 90 supplies many new language features to develop better structured programs and to produce more reliable code, this does not remove the need for FORCHECK.
Forcheck analysis will facilitate the migration of Fortran 77 code to Fortran 90. During migration you need to find out where and how each syntactic item is used and where each common block and subprogram is used to change the code without risk. But even after removing all legacy Fortran 66 and Fortran 77 syntax or when developing "clean" Fortran 90 programs from scratch you will find Forcheck most useful. Forcheck signals unreferenced and undefined items better than most compilers do - if they do. Forcheck verifies not only all constraints as specified in the standard but also flags each deviation from the standard where feasible. Another important application of Forcheck is the production of source code documentation, such as cross-reference tables of each separate program unit as well as of the integral program. For example you can now easily find out where each module or procedure is used and where external i/o takes place. You will have to try Forcheck on your own code to learn to appreciate its features! Therefor we offer for the PC a one month money-back guarantee. For the UNIX and VMS implementations you can order an evaluation licence to use Forcheck for one month.
The most striking Forcheck V12 features are:
- Full Fortran 90 and High Performance Fortran support.
- Support of many syntax extensions of all popular compilers.
- Conformance verification to FORTRAN 77, Fortran 90 and obsolescent Fortran 90. Improvements in version 12 relative to version 11 include:
- Improved argument list and Common-block list comparison: array ranks and bounds checking, input/output argument detection, etc.
- More instructive error messages. The name of the dummy argument and the name of the common-block element in error is presented in the message concerned.
- Improved monitoring of the definition status of variables, even in "ENTRY blocks". Equivalences are accounted for.
- The Windows IDE, supplied with the Windows version has been redesigned.
FORCHECK is the oldest Fortran static analyser on the market. It is well known for its excellent capabilities in the facilitating of program development and maintenance. FORCHECK detects as many programming flaws and inconsistencies as possible during static analysis. It supports more language extensions than any other Fortran analyser and is available on a wide range of platforms, from PC to super computers. The Windows version includes an integrated development environment. FORCHECK provides the user with detailed documentation which is indispensable during development and maintenance.
FORCHECK version 12 supports the full Fortran 90 syntax and can validate Fortran programs for standard conformance. Cross-reference tables are extended to the new syntax features, such as derived types, internal procedures, and modules. FORCHECK version 12 still supports all previous Fortran 77 syntax extensions so it can be used to analyse all existing and newly developed Fortran programs. It can also be used effectively during migration from Fortran 77 to Fortran 90.
Besides supporting Fortran 90 syntax the analysis and documentation capabilities of FORCHECK have been extended. The actual names of arguments and common-block objects are shown in messages and listed in the program cross-references. Shapes of arguments and common-block objects are verified. Detection of referenced before assigned, truncation and overflow has been improved. Current Forcheck users may upgrade to version 12 for 30% of the new price.

FREE ELF90
The Lahey Fortran90 subset compiler is now available for free by downloading it from the Lahey web site http://www.lahey.com. This is the complete current release ELF90 compiler. Not included is the debugger, editor, manual, and technical support all of which are provided with the commercial package ($130 educational - $295 for others). For those producing new Fortran 90 programs or wanting to learn Fortran 90 ELF90 is an ideal compiler to use. Indeed there are now many in the Fortran community who believe that Fortran 90 is far too large. A subset such as ELF90 is not only easier to learn but also generally results in programs which are more reliable since most of the Fortran 77 facilities not included in ELF90 are those which are conducive to programming errors.

LF90 Special Upgrade Pricing
Until 31 January those who have F77L, F77LEM/32, or any 32 bit Fortran compiler for the PC (eg Microsoft Powerstation, FTN77, FTN90, Absoft, Watcom F77/32) or the Macintosh may obtain LF90 at significantly reduced prices - $950 ($775 for academic purchases) plus $10 shipping. To qualify you must quote your F77L or F77LEM/32 serial number on your order. In the case of 32 bit compilers not produced by Lahey you must include the title page from the main manual.

TECPLOT VERSION 7
Tecplot is a state of the art data visualization and technical data plotting program. Anyone who needs to extract information from large data sets or needs to produce publication quality technical diagrams should find Tecplot a very worthwhile investment. Every university department in engineering and physical sciences should be able to make very good use of this product for analysing data and preparing illustrations for reports and technical papers. Tecplot is available for Windows, most UNIX workstations, and VAX/VMS.
At long last Tecplot version 7 has been released. With version 7 three dimensional capability, previously an option, is now standard in Tecplot. The PC version now runs directly under Windows 95 or NT. Most Windows 3.1 machines can also use Tecplot by means of Win32s (supplied). Another major advance in the PC version is network capability. The important new features in Tecplot are;
- a new easy to learn and use interface, using Motif on UNIX workstations and Windows 95/NT (and 3.1) on PCs. The Tecplot under Windows operates in a very similar fashion to that under UNIX.
- online help which includes both hypertext and "hover" status help
- direct manipulation of virtually every element of a plot
- quick edit dialog for rapid access to edit operations
- plot attribute dialogs to globally control a plot's attributes
- a major increase in flexibility, the attributes of many more pieces of a plot can be modified with version 7 than with version 6
-improved XY plotting by means of mappings
- improved probing is done by simply pressing the Control key
- sylesheets and layout files can now be easily edited since they are now in ASCII
- new data types, 32 and 64 bit floating point as well as long integer, short integer, byte and bit data types.
- simple direct page layout (instead of windows with frames) gives complete control over how figures are printed
- greater power and flexibility in the macro language
Version 7 is highly compatible with version 6. The main differences, the new macro language, the new stylesheet file format and the new layout file format. are accommodated by the provision of conversion utilities. The only aspect not comprehensively covered by the conversion facilities is keystrokes in macro commands (only the macro commands themselves are translated).
Evaluation copies of Tecplot are available for UNIX platforms. For the PC an excellent demo is available. In addition to a comprehensive "show and tell" it contains a working version of Tecplot which is constrained to accept only the provided demo data files. One can thus test most of the Tecplot facilities.

FORTRAN90 for SUN SPARC
If you use FORTRAN on SUN SPARC hardware you should test the Fujitsu Fortran 90 compiler. This high quality, inexpensive compiler ($1599 - $850 academic) produces code which executes fast. Optimizations are provided to take advantage of the UltraSPARC and SPARC64 architectures. Jet Propulsion Laboratory found their application ran 2.5 times faster when compiled with Fujitsu Fortran 90 than when compiled with the SUN Fortran 77 compiler using full optimisation . Fujitsu's Sampler was used to point program changes which led to a further 20% increase in execution speed. Included with the Fujitsu compiler is "Knowledge Box" an online guide to programming in Fortran 90. It includes the Programmer's Guide to Fortran 90, and Fortran Top 90, Ninety Key Features of Fortran 90. Fujitsu Fortran 90 now has High Performance Fortran (HPF) support through NA Software's HPF Mapper.
Evaluation copies of the entire Fujitsu software development suite (Fortran90, C/C++, Scientific Subroutine Library, and Visual Analyser are available on CD at no charge. If you use Fortran on a SUN SPARC test Fujitsu Fortran 90. You have nothing to lose.

LF90 and EXCEL
One of our clients, Dr. Alan Farley, has been able to use a Visual Basic procedure to run LF90 applications through Excel 5 under Windows 3.11. He finds there is no problem in using this method to run interactive programs including those which use graphics. One hurdle which he has not been able to overcome is to pause the Excel program while the LF90 program completes its task. Those interested in Excel and LF90 may contact Alan directly by fax on (03) 9565 5475 or by email at Alan.Farley@BusEco.monash.edu.au.

INTERACTER Version 4.0
Version 4.0 of INTERACTER has just been released. Below are listed some of the more significant improvements over version 3.15. The INTERACTER standard demo has been upgraded to take advantage of several facilities in version 4. The 3D surfaces example features the new tabbed forms. Several examples now automatically use TrueType fonts under Windows. If you are interested in enhancing the user interface or graphics in your programs it is a good idea to look at the INTERACTER demo. It is available from Computer Transition Systems or may be downloaded from the INTERACTER web site. Very favourable reports by users of the UNIX version of INTERACTER are frequent in the comp.lang.fortran newsgroup. INTERACTER allows Fortran programmers to write graphics and user interfaces which can be easily ported between a wide variety of UNIX hardware, the PC and VAX/VMS. Improvements for all platforms
- Tabbed forms (also known as tab dialogs)
- Box drawing in form definitions
- There is now direct entry/exit to/from graphics mode. This greatly simplifies programs which operate only in graphics mode.
- The new default set turns on many useful options which previously had to be actively selected
- Redesigned/standardised palette handling
- 256 colour dithered fills in PCL, Epson/IBM & HP GL/2 output
- Load/save hardcopy option configuration files
- The HP-GL driver is now split into HP-GL & HP-GL/2 drivers. The latter is now the default and supports poly-line encoding for even faster output.
- LaserJet III is now the default printer/plotter
- Substantial speed increase in Epson/IBM dot-matrix/inkjet output
- Integrated character/symbol set handling
- Courier-like outline fonts
- Dingbats-compatible symbol character set
- Improved software-for-hardware font substitution
- Improved 3D surface axis plotting and annotation
- Improved 2D contour plot labelling
- Driver level arc primitives
Improvements for the Windows Platform
- Windows Print Manager driver now shipped as standard
- Windows Metafile (WMF) driver
- BMP file load/save is now VERY significantly quicker
- BMP files of any colour depth now supported
- PCX file load/save now supported
- Italics supported in graphics mode text output
- Windows 4.0 mouse 'feel' under Windows 95 and NT 4.0
- Text font for menus/forms/etc automatically rescaled in graphics mode (i.e. no more horrible SYSTEM_FIXED_FONT)
Improvements for the DOS platform
- Automatic identification and use of VESA SVGA modes in all non-Salford versions
- Improved VESA support allows use of popular Matrox cards
- 1600x1200 SVGA support
- Graphics mode pop-ups under 32-bit DOS require less memory due to compression (memory buffer reduced from 1mb to 400k)
Improvements for the VMS & UNIX platforms
- Rescaleable fonts used in graphics text output under X11R5
- Xlib driver selected by default when operating under X Windows
- Display definitions file no longer required, simplifying end-user setup
- Colour DECterm option
- Better VT200 control keys
- Versions available for Absoft f77 under Linux and GNU g77 under Solaris/x86
- The economical single user licence Xlib/INTERACTER is now available for Sun SPARC, Vax/VMS, Alpha (OpenVMS or UNIX), and for UNIX on INTEL based PCs.

FORTRAN 90 FEATURES by John Prentice
In the July/August 1996 issue of "Fortran Journal" there was an article by John Prentice which described his experience with some of the particularly noteworthy new features in Fortran 90. Included were kind parameters, interface blocks, array syntax and intrinsics, allocatable and automatic arrays, derived types and structures, modules, internal procedures and pointers. The following is a very brief summary of this article.
Kind Parameters provide a method for parameterizing the computer representation of data types. The programs John Prentice writes must often be used on more than one platform. The use of kind parameters with intrinsics (such as selected_real_kind which returns the kind number needed to represent a real variable with a specified number of significant digits and exponent range) is a great help in making programs portable. However as the article points out there can still be portability problems arising from variations in actual machine representation.
Interface Blocks permit the compiler to perform argument checking in procedure calls. They thus can be enormously useful in catching errors in long argument lists [although good compilers and static analysers such as FORCHECK can do this]. However interface blocks can be tedious to use and prone to errors. For these reasons many Fortran 90 programmers do not use them. The need for interface blocks is eliminated if procedures are defined in modules.
Array Expressions and Array Intrinsics reduce the amount of code needed in a program and make it more amenable to compilation for parallel processors. However array expressions can introduce optimization problems for compilers. If execution speed is very important (as is often the case) then compiled code using DO loops can run significantly faster than the equivalent code using array expressions. Array intrinsics, on the other hand, are generally well optimized and result in better performance than hand coded routines.
Allocatable and Automatic Arrays are very useful features of Fortran 90 and their use is strongly recommended.
Derived Types and Structures fill one of the most glaring omissions in Fortran 77. They make it possible to easily create complicated data structures. However John Prentice has found that compilers frequently cannot optimize code using derived data types. Another current problem with derived types is that it is not possible to have allocatable components in a derived type.
Modules are one of the most useful and important new features in Fortran 90. They permit code and data encapsulation. They eliminate the need for common blocks (which are major source of troublesome bugs in Fortran 77 code). One drawback of modules is that most current make utilities cause the needless recompile of routines dependant on a module which is changed.
Internal Procedures are basically a generalization of the Fortran 77 statement function. They are a mechanism for code encapsulation and should have the potential for better optimization than external procedures (although present compilers do not seem to do this).
Pointers can lead to significantly more readable code. They can be useful for operations involving array swapping since pointers can be simply retargeted rather than having to copy arrays. However pointers are rarely used by John Prentice because current Fortran 90 compilers do poor pointer optimization.

TLIB for WINDOWS
TLIB is a fast, powerful, easy to learn and use, version control system. The Windows version is due for formal release soon. Presently it is available as a "prerelease version" ($330-single user) bundled with the current DOS TLIB. The Windows version has the following new facilities.
o Easy to use Graphical User Interface, with button bar, menus, right-button functionality, helpful status-bar guidance, MRUs, etc.. Honed to smooth ease-of-use through a very long beta test cycle.
o Flexible file pick-list, with multiple selection, sorting, etc..
o Full compatibility with command-line versions of TLIB, and full upward-compatibility with all past versions of TLIB.
o IDE integration in several development environments, plus direct support for the compiler-native "project files" for several popular compilers. This means you can simply "open" a compiler-native project in TLIB, ather than specifying files with wild-cards and file-lists.
o Fully restartable multiple-file operations. TLIB optionally deselects each file in the pick-list when done processing that file, so you can cancel the operation (or skip individual files) and later restart the command to resume where you left off or process the skipped files.
o A nice, colourful, side-by-side visual compare, fully integrated. Identifies and highlights changes within lines, as well as between lines.
o Easy to use Windows-based installation under Windows 3.1, Windows 95, OS/2, and Windows-NT.
o Two public APIs, for integrating TLIB with your application: a callable interface to the fully-reentrant TLIB Windows DLL engine, and a simple "invisible DDE" interface to the TLIB for Windows executable.
o Amazing configurability. TLIB now supports over 100 different configuration parameters. TLIB's configuration file supports conditional loading and full, compound expression evaluation, with parenthese and nearly 30 different operators!
o New TLIB Configuration Wizard helps you quickly configure TLIB the way you need it.
o Very flexible wild-card specifications, including support for file-lists, multiple asterisks in wild-card specs (even under DOS or Windows 3.1x), six different wild-card search modes (most of which can now be combined), and optional automatic spanning of subdirectories (with any/all search modes).
o Automatic translation of DOS, Unix, and Macintosh ASCII text files; that is, text files with all three common kinds of end-of-line delimiters: CR+LF, LF-only, and CR-only. Configurable control over which text format is generated by TLIB when extracting ("checking out") text files. (Of course, for binary files no translation is ever doeturn to Computer


Return to Computer Transition System's home page.

Updated 24 October 1996