Fortran 90/95 & Linux OS
Fortran 90/95 development on Linux
"My own opinion is that scientists today need to know more than one language or one computing paradigm. And I think it is entirely reasonable that students learn C++ before they graduate, though even more important is that they learn how to program MATLAB and a computer algebra system such as Maple or Macsyma. But the issue is what freshmen should learn as their first language and for that I would recommend Fortran 90 hands down. It is a better language for scientific programming and is both easier to learn and use than the alternatives. It is also much more likely to be the language students will be employing in their jobs upon graduation and it is the most promising route currently developing for the programming of parallel computers."
Dr. John K. Prentice
Quetzal Computational Associates
Scientific & Engineering Computing in Linux
Various open source free software packages, specially tuned for scientific and engineering computations exist on Linux platforms. They are extremly stable and computationally very efficient. Some of them could be seen as a substitution for Matlab itself, which is probably the best engineering development platform available for Linux OS. Many of them exist for Apple Mac OS X as well. Here is a link. A brief introduction to the several "main streem" software packages for scientific and engineering computations on Linux OS is given below.
MATLAB 2008
The MATLAB
high-performance language for technical computing integrates
computation, visualization, and programming in an easy-to-use
environment where problems and solutions are expressed in familiar
mathematical notation. Typical uses include: Math and
computation; Algorithm development; Data acquisition;
Modeling,
simulation, and prototyping; Data analysis, exploration, and
visualization; Scientific and engineering graphics; Application
development, including graphical user interface building. MATLAB is an
interactive system whose basic data element is an array
that does not require dimensioning. It allows you to solve many
technical computing problems, especially those with matrix and vector
formulations, in a fraction of the time it would take to write a
program in a scalar noninteractive language such as C or Fortran.
The name MATLAB stands for matrix laboratory. MATLAB was originally written to provide easy access to matrix software developed by the LINPACK and EISPACK projects. Today, MATLAB engines incorporate the LAPACK and BLAS libraries, embedding the state of the art in software for matrix computation. MATLAB has evolved over a period of years with input from many users. In university environments, it is the standard instructional tool for introductory and advanced courses in mathematics, engineering, and science. In industry, MATLAB is the tool of choice for high-productivity research, development, and analysis. MATLAB features a family of add-on application-specific solutions called toolboxes. Very important to most users of MATLAB, toolboxes allow you to learn and apply specialized technology. Toolboxes are comprehensive collections of MATLAB functions (M-files) that extend the MATLAB environment to solve particular classes of problems. You can add on toolboxes for signal processing, control systems, neural networks, fuzzy logic, wavelets, simulation, and many other areas.
GNU Octave
GNU Octave is a high-level language, primarily
intended for numerical
computations. It provides a convenient command line interface for
solving linear and nonlinear problems numerically, and for performing
other numerical experiments using a language that is mostly compatible
with Matlab. It may also be used as a batch-oriented language. It can
be extended through M-files just like Matlab (with basically identical
sintax).
Octave has extensive tools for solving common numerical linear algebra problems, finding the roots of nonlinear equations, integrating ordinary functions, manipulating polynomials, and integrating ordinary differential and differential-algebraic equations. It is easily extensible and customizable via user-defined functions written in Octave's own language, or using dynamically loaded modules written in C++, C, Fortran, or other languages.
GNU Octave is also freely redistributable software. You may redistribute it and/or modify it under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation. Octave was written by John W. Eaton and many others. Because Octave is free software you are encouraged to help make Octave more useful by writing and contributing additional functions for it, and by reporting any problems you may have.Scilab
Scilab is a scientific software package for
numerical computations providing a powerful open computing environment
for engineering and scientific applications (very similar to MATLAB).
Developed since 1990 by researchers
from INRIA and ENPC, it is now
maintained and developed by Scilab Consortium since its creation in May
2003.
Distributed freely and open source (see the license
and the
trademark license) via the Internet since 1994, Scilab is
currently being used in educational and industrial environments around
the world.
Scilab includes hundreds of mathematical functions with the possibility to add interactively programs from various languages (C, Fortran...). It has sophisticated data structures (including lists, polynomials, rational functions, linear systems...), an interpreter and a high level programming language. It can be extendet with M-files just like Matlab. Scilab has been designed to be an open system where the user can define new data types and operations on these data types by using overloading.
A
number of toolboxes are available with the system: 2-D and 3-D
graphics, animation, Linear algebra, sparse matrices, Polynomials and
rational functions, Simulation: ODE solver and DAE solver, Scicos: a
hybrid dynamic systems modeler and simulator, Classic and robust
control, LMI optimization, Differentiable and non-differentiable
optimization, Signal processing, Metanet: graphs and networks, Parallel
Scilab using PVM, Statistics, Interface with Computer Algebra: Maple
package for Scilab code generation, MuPAD 3.0 includes Scilab,
Interface with Tcl/Tk, And a large number of contributions for various
domains. It
comes with source code, on-line help and English user
manuals.
Maxima
Maxima is a system
for the manipulation of
symbolic and numerical expressions, including differentiation,
integration, Taylor series, Laplace transforms, ordinary differential
equations, systems of linear equations, and vectors, matrices, and
tensors. Maxima produces high precision results by using exact
fractions and arbitrarily long floating point representations, and can
plot functions and data in two and three dimensions.
Maxima is a descendant of Macsyma, the legendary computer algebra system developed in the late 1960s at the Massachusetts Institute of Technology. It is the only system based on that effort still publicly available and with an active user community, thanks to its open source nature. Macsyma was revolutionary in its day, and many later systems, such as Maple and Mathematica, were inspired by it. The Maxima branch of Macsyma was maintained by William Schelter from 1982 until he passed away in 2001. In 1998 he obtained permission to release the source code under the GNU General Public License (GPL). It was his efforts and skill which have made the survival of Maxima possible, and we are very grateful to him for volunteering his time and expert knowledge to keep the original DOE Macsyma code alive and well. Since his passing a group of users and developers has formed to bring Maxima to a wider audience. wxMaxima is a cross platform GUI for the computer algebra system Maxima based on wxWidgets. It provides menu and dialog based interface for maxima and a nice display of math output.
Maple 11
Engineers and scientists around the world use the
power of Maple
for performing everyday calculations, developing advanced mathematical
models and creating user-friendly technical applications. Maple is the
essential computational tool that accelerates and enhances your
analytical work – from deriving mathematical models, to
solving and analysis, parameter optimization, solution validation and
deployment of your results. Maple eases the flow of your analytical
work, saving you time, minimizing rework and reducing costs. This is an
absolute mast-have for every student and enginner. User interface is
exactly the same on Linux as it is on the Windows platform!
Coverage of virtually every area of mathematics, including calculus, algebra, differential equations,statistics, linear algebra, geometry, and transforms; Intuitive smart document environment; Advanced easy-to-use math equation editor; Self-documenting context-sensitive menus; Units, dimensions, and tolerances; Task templates and interactive task assistants; Embedded GUI components (sliders, buttons, text fields, etc.); 2-D and 3-D plotting and animation, with extensive annotation tools; Dictionary of technical terms; Code generation (C, Fortran, Visual Basic®, JavaT, MATLAB®); Connectivity to Excel®, MATLAB, C, Java, Fortran.