General:
The programs usually do not depart much from F-95 and, unless
they contain graphics, compile in
standard manner in Windows, 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 compiler option to enforce static
allocation. For example on the f77 compiler on SGI machines
and in Compaq Visual Fortran this used to be the -static option, in
Intel Visual Fortran this is option -Qsave., while in the gfortran compiler the same option is called -fno-automatic.
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
Fortran is still evolving, so it might be useful to check out some of these Fortran links.
Graphics:
Some graphics is clearly better
than none and many years ago I
selected the
graphics package that appeared for
the first time with Microsoft
Fortran 5.0 (MSF5). This was tied
to the PC DOS/WIN
world, but worked well
enough. It also turned out to be a good choice since it is
available in only a moderately changed form.
Further development has been to
use these graphics in programs
requiring a lot of memory, 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.
This Fortran then became Compaq
Visual Fortran. With time, another change of ownership took place, and
the current
version is under the INTEL
brand name. Various evolutionary milestones and compatibility
issues are described below:
MSF5 (Microsoft
Fortran 5): The resulting code was quite
troublefree, but it had to be run
in a full-screen MS-DOS
window (or just DOS). Programs used
only the low DOS memory, so could not
be too large and screen
resolutions higher than VGA were
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 was able to run on
PC's ranging from 286/Hercules to
PIV/Windows 2000+.
MSPS1.0 (Microsoft
PowerStation Fortran 1): Programs gained access to
much more memory and to
resolutions higher than the VGA.
Full screen operation was still by
far the best mode, although
(extremely slow) operation in a
window was possible. A 32-bit DOS
extender, DOSXMSF.EXE, was required
and the programs were best launched
from DOS. For W95/W98 it was
necessary to block detection of
Windows from DOS, which was done in
the properties/advanced section of
the MS-DOS window. Furthermore
resolutions higher than VGA, which
worked fine within Windows 3.1, were subject
to various problems in Windows 95+. Also compilation with the
optimization options was prone to produce code
that crashed very nicely.
This was for a long time the
preferred version, up to the
moment when portability problems became serious. It was necessary to use
the DOSXMSF.EXE extender (and the
associated DOSXNT.386). The
legalese concerning its availability was not clear.but it seemed to be
bundled with many packages put out on the web.
MSPS4.0 (Microsoft
PowerStation Fortran 4): This produced native
NT/W95+ applications which was
fine, although recompilation of older
code with minimal modifications
gave 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 worked. The OpenGL graphics
(available since MSPS4.0) were well
documented and were enticing, but never tested. Much of the behaviour
suspect with MSPS4.0 has been
understood. Many of the changes
since MSPS4.0 had the robust
feeling of DEC Fortran about them,
and there has been useful
manufacturer support for this
version.
The downsides were relatively few,
one being that links with the past
had to be broken as the
executables would no longer run in
Windows 3.x or clean MS-DOS. Also
the executables have become three
times larger, and the graphics was
many times slower than with
MSPS1. Fortunately, those
drawbacks were more than adequately
compensated for by advances in the
hardware. Finally the number of
changes in the code were just too
many to keep a
single source running on all
available systems. Older graphics versions of my programs were
thus successively
discontinued. The CVF6.6B compiler
was, for quite a few years, the preferred version.
IVF9.1 (Intel Visual Fortran
Compiler for Windows):
The CVF compiler was taken over by
Intel, while maintaining backward compatibility. This particular
version was used for continuation of the development of the graphics
oriented programs on this site.
IVF12.1 (Intel Fortran
Compiler for Windows):
This is the latest incarnation of
this indestructible compiler (as of Nov2011, the time of this update).
The compiler has been rebranded as Intel Visual Fortran Compiler XE
2011, and is part of the Intel Parallel Composer XE package. The
internal version numbering still goes back to the Microsoft Powerstation
Fortran.
There is one important change that
took place during the update process of this package. Subversions up to
and including Update 5 were based on Microsoft
Visual Studio
2008 Shell, whereas from Update 6 these are based on the Microsoft
Visual Studio 2010 Shell. The two shells are integrated with
different versions of Microsoft .NET Framework (3.5 and 4, respectively)
and compile with rather different libraries. Executables of
graphics programs produced with the VS2010 Shell no longer work on
Windows 2000 systems (as seen on Pro and Server versions).
Fortunately, if you have
the VS2008 shell already installed, the upgrading process updates the
Fortran also in this shell. Thus the Fortran 12.1.1 subversion out
of Update 7, when compiled within the VS2008 shell, will still run on
W2000 systems. It is true that these systems are largely obsolescent but
the VS2008 shell route will be maintained for some time.
As a
recap: the ownership trail for
this compiler is quite spectacular being MICROSOFT->DEC->COMPAQ(+HP)->INTEL
|