Appendix F Code and Electronic Information Sources

This appendix collects a few useful sources of information. Special thanks to Philippe-Andre Tetrault for adding the actual links to the information sources. We include general numerical analysis programs, sources of aerodynamics codes, and places to look on the net for additional information.

F.1 Numerical Analysis Software

A number of sources of numerical analysis subroutines are available at reasonable prices. Some are even free. Other numerical methods subroutines are expensive.

The standard source for numerical algorithms is netlib. The following information should help you get started using this resource:

Finding Numerical Analysis Software on the Web (from Tony Giunta)

The Netlib software repository is maintained by the Department of Energy's Oak Ride National Lab and the University of Tennessee at Knoxville. The software libraries in Netlib, provide computational tools, in the form of subroutines, to perform various mathematical and numerical analysis operations. Some of the packages of particular interest to engineers are LAPACK (linear algebra) and EISPACK (eigenvalue, eigenvector analysis). The software libraries come in a variety of languages. For example, LAPACK and CLAPACK libraries contain the same linear algebra routines in FORTRAN and C, respectively. Also, there are a number of libraries for C++, High-Performance FORTRAN (HPF), and FORTRAN90 subroutines, as well as parallel processing routines such as PVM and MPI.

The web site for Netlib provides a useful search tool which is the second item listed on the Netlib homepage. The directions on this home page indicate how to search for items of interest.

Note: Often, a particular subroutine uses a number of other Netlib routines in its calculations. Netlib gives the user the choice of downloading only the single subroutine or the subroutine and its dependencies. Usually it is a good idea to download all of the files unless the user is sure that only the single routine is needed.

Numerical Methods and Software, by David Kahaner, Cleve Moler and Stephen Nash, Prentice Hall, Englewood Cliffs, 1989.

This book comes with a disk containing a good collection of subroutines. These are actually comprehensive commercial grade subroutines that come from the standard public domain libraries. They are much larger routines than those in the Numerical Recipes book. Because they are much more comprehensive, I've found them to be slightly harder to use because they rely on numerous other subroutines, and collecting them sometimes takes more time. However, they also work very well. Because they are based on public domain programs, as far as I can tell, they can be distributed with your own programs without getting permission.

Numerical Recipes in FORTRAN, The Art of Scientific Computing, Second Edition by William H. Press, Saul A Teukolsky, William T. Vetterling, and Brian P. Flannery, Cambridge University Press, Cambridge, 1992.

This is the book most students use. It is available online in PostScript or Adobe Acrobat format. It contains listings of subroutines implementing the methods (recipes). The routines are brief, intended to illustrate the methods, and are not necessarily meant to be general purpose subroutines. However, my experience with them is good. Professional numerical analysts don't approve of using these routines, so be careful. Also, you cannot use them in codes you distribute. This is probably because the authors know the routines are not really a professional programming product. A disk with the programs is available for an additional cost, as is a small paperback book containing examples of the use of the programs. An edition of the book with the routines in the C language is also available, as well as an example book and disk. I have found these sources to be easy to use.

Elementary Numerical Analysis, by S.D. Conte and Carl de Boor, McGraw-Hill, New York, 2nd Ed., 1972.

This book has a number of good computer routines, including root finding, solution of equations, systems of linear algebraic equations, ordinary differential equations, quadrature and interpolation (splines).


This is a library of programs available electronically that are public domain. The authors of Numerical Recipes recommend the use of these routines for distribution. Once again, all the public domain libraries are closely related. However, there are not directly interchangeable, and you must be careful to not get them mixed up. SLATEC is very large.

>From the Numerical Recipes people: "If you are looking for public domain numerical software that can be redistributed freely (as Numerical Recipes *cannot*), you should look at the collections that can be obtained from NETLIB. We also recommend SLATEC as a good alternative to the commercial, and therefore restrictively licensed IMSL and NAG libraries."

  • You can get the same information from the web page at

    The SLATEC library, a comprehensive collection of over 1400 mathematical and statistical routines, may be of particular interest.t

    Also from the Numerical Recipes gopher site, by W. Press:

    The SLATEC Common Mathematical Library is an extensive public-domain FORTRAN source code library consisting of 1400 routines and 300,000 lines of code and documentation. It is developed and maintained by a consortium of Department of Energy and Department of Defense national laboratories. Version 4.0 of the library was released in December, 1992. It incorporates within itself several other public domain packages, including EISPACK, FFTPACK, QUADPACK, FNLIB, BSPLINE, SLAP, and others. It is distributed by

    National Energy Software Center
    9700 Cass Ave
    Argonne, Illinois 60439

    All questions about the library should be directed there.

    SLATEC's size is a problem. The routines are interconnected. To use a single routine, between 6 and 20 subsidiary routines may be required. As a public service, Numerical Recipes has put together a multiply cross-linked gopher tree. The tree allows the routines and their documentation to be located using gopher, either by subject or name. Most importantly, it allows a routine and its required subsidiary routines to be efficiently downloaded in source code form.

    Once in SLATEC, there are several things to remember: (1) Almost all the routines require at least several of the subroutines that have been collected in the file on the top level of the SLATEC directory called "slatec-util.f". Be sure to download this file, compile and link it with any other routines. (2) Documentation for each file (each .f file) is in a similarly-named .hdr file, in the same subject classified subdirectory of the tree. In the SLATEC library as released, the documentation is embedded in each FORTRAN file. (3) When a routine requires additional subsidiary routines, there are links to these routines in a dependencies directory, visible at the same level as the .f file. Example: to use the routine CBESJ (Bessel function of complex argument), you must download the files slatec-util.f (from the top directory), cbesj.f and cbesj.hdr (from the subject directory C10A4), and all the routines in "cbesj_dependencies" (also in C10A4).

    F.2 Aerodynamics Codes

    See a software review for general codes useful in aerodynamics.

    I also have a small set of codes available online.

    F.2.1 Textbooks

    Many text books contain listings illustrating the methods. They can be a valuable learning tool, although many of the codes were not written by computer scientists, and do not reflect good programming practice (remember they are included with the cost of the book, and thus are essentially free - remember you get what you pay for). In some cases graduate or even undergraduates wrote the programs. Textbooks with code listings:

    Joseph A. Schetz, Boundary Layer Analysis, Prentice Hall, Englewood Cliffs, 1993.

    Tuncer Cebeci and Peter Bradshaw, Momentum Transfer in Boundary Layers, Hemisphere Publishing Corp, New York, McGraw-Hill Book Company, 1977.

    This book contains FORTRAN programs for:

    Tuncer Cebeci and Peter Bradshaw, Physical and Computational Aspects of Convective Heat Transfer, Springer-Verlag, New York, 1984

    There is also a paperback book which provides supplemental comments on these programs, as well as solutions obtained using them:

    Tuncer Cebeci, Solutions Manual and Computer Programs for Physical and Computational Aspects of Convective Heat Transfer by Tuncer Cebeci and Peter Bradshaw, Springer-Verlag, New York, 1989

    Jack Moran, An Introduction to Theoretical and Computational Aerodynamics, John Wiley & Sons, New York, 1984.

    Joseph Katz and Allen Plotkin, Low-Speed Aerodynamics: From Wing Theory to Panel Methods, McGraw-Hill, Inc., 1991 Fourteen programs are in an appendix:

    Two-dimensional panel methods

    Two-dimensional panel methods based on Neumann BC

    Two-dimensional panel methods based on Dirichlet BC

    Three-dimensional programs

    Time Dependent Programs:

    C.B. Stribling, BASIC aerodynamics, Butterworths, London, 1984.

    This book has listings of programs in BASIC, from the days way when BASIC was the primary language available on personal computers.

    Joe F. Thompson, Z.U.A. Warsi, and C. Wayne Mastin, Numerical Grid Generation: Foundations and Applications, Elsevier Science Publishing Co., New York, 1985.

    Model programs are included for:

    Patrick Knupp and Stanly Steinberg, Fundamentals of Grid Generation, CRC Press, Boca Raton, 1993.

    This book comes with a disk containing examples of the methods covered in the book.

    C.A.J. Fletcher, Computational Techniques for Fluid Dynamics, Springer-Verlag, Berlin, 1988.

    Volume I, Fundamental and General Techniques

    Volume II, Specific Techniques for Different Flow Categories

    Arnold M. Kuethe and Chuen-Yen Chow, Foundations of Aerodynamics, John Wiley & Sons, New York, Fourth Edition, 1986. The fourth edition of this book has two listings of programs, in FORTRAN.

    R.I. Lewis, Vortex Element Methods for Fluid Dynamic Analysis of Engineering Systems, Cambridge University Press, Cambridge. These routines are in Pascal:

    F.2.2 Commercial vendors

    This is a short list of vendors. Future versions of this appendix will contain more listings. Students should realize that some of these codes are not student programs and are (very) expensive by student standards.

    AeroSoft, Inc.
    1872 Pratt Drive, Suite 1275
    Blacksburg, VA 24060-6363
    Phone (540) 231-6125, FAX (540) 231-6137

    AeroSoft sells GASP (General Aerodynamic Simulation Program), a general purpose flow solver. Primarily developed for hypersonic analysis, a particular strength is the capability to handle finite rate chemistry. However, the code can treat steady and unsteady flows across the Mach range.

    Analytical Methods, Inc.
    2133 - 152nd Avenue N.E.
    Redmond, WA, 98052
    Phone (206) 643-9090, FAX (206) 746-1299

    AMI sells a number of codes. They include

    Desktop Aeronautics
    P.O. Box 9937
    Stanford, CA 94305
    Phone (415) 424-8588

    These are the codes by Ilan Kroo. Currently they run on Macintosh computers, but some are available for IBM PCs. Programs currently available include:

    Public Domain Aeronautical Software
    300 Potrero St.
    Santa Cruz, CA 95060
    (408) 454-9754

    Ralph Carmichael, who was there at the beginning as a NASA Engineer, is selling a number of programs developed under NASA funding on a CD rom. They are ready to run under MS-DOS or Windows, and come with complete source codes, descriptions, and sample cases (both input and output. The latest release is version 2.0, and sells for $150. I have used version 1.0, and had no problem running the codes on a Mac. This is a very good deal. The Applied Computational Aerodynamics Text discusses the basic theory used in these programs. Version 2.0 contains:

    1613 Altivo Way
    Los Angeles, CA 90026
    (213) 665-1397
    (213) 953-8378 fax

    AeroLogic sells the Personal Skunk Works system of codes. There are three principal components, Loftsman/P, Cmarc, and Postmarc. Loftsman is the lofting program used to develop the geometry. Cmarc is a low order panel method. It is based on the NASA Ames program PMARK, but re-written in C and setup for use on PCs. Postmark is the graphics postprocessor for Cmarc (or PMARC). This system is designed for professional use, but educational rates are available.

    120 East 9th Street, Suite 2
    Lawrence, KS 66044
    (913) 832-0524
    (913) 832-0524 fax

    Although Professor Roskam's company is mainly known for aircraft design and stability and control materials, they are now selling a number of aerodynamics oriented programs, including stability and control derivative estimation software, and drag estination software. These codes are available for the Windows operating system. I have not run these codes personally, but I have seen their aircraft design code, AAA, demonstrated on unix systems, and it suggests that these codes would be good.

    CFD Research Corporation
    3325 Triana Blvd
    Huntsville, AL 35805
    Phone (205) 536-6576, FAX (205) 536-6590

    F.3 Key Web Sites

  • NASA Tech Report Server

  • Ilan Kroo's Applied Aerodynamics Textbook

  • Numerical Aerodynamics Simulation (NAS) at NASA Ames

  • CFD Online resources: A remarkable collection

    Several books are available online:

    Return to the main table of contents