|
General:
All
programs
are
in FORTRAN of basically F-77 vintage and, unless they
contain graphics, compile in standard manner in DOS/WIN, UNIX, and MAC
environments. The expected reply to YES/NO type of question is 1/0,
unless Y/N is explicitly suggested in the prompt. Pressing just the
ENTER key often suffices for 0.
Most
contemporary
compilers
no longer use default static memory
allocation that preserves values of variables previously set in some
subroutine. Many programs assume this to be the case so that you need
to use an appropriate keyword to enforce static allocation. For example
on the f77 compiler on SGI machines this is the -static option,
whereas with Intel Visual Fortran you have to use option -Qsave. Note that
with some compilers optimization options used not to be safe. With good
compilers this is no longer the case, but if problems crop up it is
still good to check by disabling optimization.
Minimal
tweaking
may
be necessary for several trivial issues such as
- the edit descriptor in FORMAT
statements used to halt carriage control - I generally use the $
character for this, but the occasional backslash character \ may have
slipped in and this is less widely recognized
- the bell signal is hard coded as
CHAR(7) and many systems will probably just ignore it
Graphics:
Some
graphics
is
clearly better than none and after early
experimentation I selected the graphics package that appeared for the
first time with Microsoft Fortran 5.0 (MSF5). This is regrettably tied
to the PC DOS/WIN world, but works well enough. Further development has
been to combine these graphics with large memory requirements, and the
solution came with Microsoft PowerStation Fortran 1.0 (MSPS1). For the
NT/WIN95+ systems the same graphics became available in Microsoft
PowerStation 4.0 (MSPS4). Microsoft then sold off its Fortran to
DIGITAL who were, in turn, acquired by COMPAQ. Another change of
ownership then took place, and the current version (10) is under the
INTEL brand name. Various compatibility issues are as below:
MSF5
(Microsoft Fortran 5): this code seems to be the
most troublefree, but it has to be run in a full-screen MS-DOS
window (or just DOS). Programs use only the low DOS memory, so cannot
be too large and screen resolutions higher than VGA are not supported.
This version was the only one tested on an Apple (PowerMac) and worked
very acceptably on the W3.0 emulator found there, and is able to run on
PC's ranging from 286/Hercules to PIV/Windows 2000+.
MSPS1.0
(Microsoft PowerStation Fortran 1): programs have
access to much more memory and to resolutions higher than the VGA. Full
screen operation is still by far the best mode, although (extremely
slow) operation in a window is possible. A 32-bit DOS extender,
DOSXMSF.EXE, is required and the programs are best launched from DOS.
For W95/W98 it is necessary to block detection of Windows from DOS,
which is done in the properties/advanced section of the MS-DOS window.
Furthermore resolutions higher than VGA, which work fine within W3.1,
are subject to various problems in W95+. Also note that compilation
with the optimization options produces code that crashes very nicely.
This
was
for
a long time our preferred version, but there are
portability problems. I am not clear on the legalese concerning the
DOSXMSF.EXE extender (and the associated DOSXNT.386). They may, or may
not be available from the Microsoft www page, but they seem to be
available from various sites. They are, for example, included in the
DOS/Windows3.x version of the ICON-EDiT package available from http://iacrs1.unibe.ch/members/iconedit.html#iconedit. Note that there are various sizes and dates of these files
and some are not compatible with W95+.
MSPS4.0
(Microsoft PowerStation Fortran 4): this produced
native NT/W95+ applications which was fine but recompilation of older
code with minimal modifications produced results that were inferior in
many respects to the code from MSPS1.0. In addition there were many
evident bugs in the compiler.
CVF6
(Compaq Visual Fortran 6): this turned out to be
a much more reliable implementation of Fortran for the Windows
environment, and most of the old graphics inherited from the MSF5.0
still works. The OpenGL graphics (available since MSPS4.0) is well
documented so this version may form a springboard in that direction.
Much of the behaviour suspect with MSPS4.0 has been understood. Many of
the changes since MSPS4.0 have the robust feeling of DEC Fortran about
them, and there has been useful manufacturer support for this version.
The
downsides
are
relatively few, one being that links with the past
have to be broken as the executables will no longer run in Windows 3.x
or clean MS-DOS. Also the executables have become three times larger,
and the graphics runs many times slower than with MSPS1. It is a sign
of the times that nowadays nobody seems to care about such things,
since they are usually more than adequately compensated for by advances
in the hardware. Finally the number of changes in the code are just a
little bit too many to keep a single source compatible with running on
older systems, so older graphics versions of my programs are being
successively discontinued. This version (6.6B) is currently our
preferred version, although the next incarnation (see below) is also
used interchangeably.
IVF11
(Intel Visual Fortran Compiler for Windows): This is the latest incarnation of
this indestructible compiler following transfer of the CVF compiler
line to INTEL. It is assured to be backwardly compatible with the CVF6
version.
If
you
are
confused, here's a recap - the ownership trail for this
compiler is: MICROSOFT->DEC->COMPAQ(+HP)->INTEL
|