At 12:11 PM 11/9/98 +0000, Dr. Panos Asproulis wrote:
> I recently joined Team Ada and I would like your expert help
> in a decision problem that my company is now facing.
> We decided to produce a new version of this code written
> in a modern programming language (currently in Fortran 77)
> and we mainly consider C++ and Fortran 90 as the new
> language to use. Since we wish to achieve an object oriented
> design C++ sounds like the natural choice although Fortran
> is very popular in numerical software...

   Some answers, although not necessarily to the questions as asked...

   First, C++ would be a poor choice, since to get performance, you will
end up throwing away most of the good new features.  Honestly programming
in C would be a better alternative.

   But for this type of code, you probably want to keep/write most of your
matrix code in Fortran 90.  I think Convex has an Ada compiler that is
competitive with Fortran 90 in this area, but you apparently will be marketing
to a wide variety of users.

   Third, I suggest you split your system into three parts--a computational
engine, which should be all or mostly Fortran 90, a programming interface
which can create data sets to be given to the engine, and a display module
which can
visually display the results of runs.  You might want to use Ada to allow
these
three parts to run concurrently or use some other interface.  However, once
you have the decomposition right at the top level, you can choose the
proper language for each part of the application.  In fact since the
front-end should be a programming interface, you may want to provide
interfaces in several different languages.  (Also, assuming that the
interface to the computational engine is done right, the display engine is
a special case of a process that accepts the computational output.)

                                        Robert I. Eachus

with Standard_Disclaimer;
use  Standard_Disclaimer;
function Message (Text: in Clever_Ideas) return Better_Ideas is...