THE COMPUTER TRANSITION SYSTEMS REPORT
November 1996
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
Updated 24 October 1996