|
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, akthough
the next incarnation (see below) is also
used interchangably.
IVF10
(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
|