This page contains various programs that may prove useful to aerodynamics and design class students. These are mostly oldfashioned codes without graphical user interfaces. In fact this was originally all FORTRAN source code. However, I’ve recently started adding executables since the FORTRAN source files typically can’t be used by current undergraduates. In addition, some methods are given as MATLAB mfiles. Another source of classic aerodynamics codes is the CD sold by Ralph Carmichael, Public Domain Aeronautical Software (PDAS). These codes can now be downloaded for free! Important Note: Many of these programs require a text file as input. DO NOT embed tabs in these files. ALSO, the location of the input on each line is critical. The input instructions are often given as “cards”, from the days when the text files were physically a deck of computer cards. The spacing definitions use FORTRAN terminalogy. Do yourself a favor and learn what this means. For example, F10 means a real number (with a decimal point) taking 10 spaces. Study the sample input files for examples of how this works (in fact, ALWAYS run the sample case before doing anything else with these codes). For pointers on running codes, read the chapter from my Applied Computational Aerodynamics notes, Computers, Codes, and Engineering (a pdf file). In some cases I have now added links to sites located elsewhere, where key codes are available. Other useful online Javabased programs are available at www.engapplets.vt.edu. Comments or questions? Contact me at whmason@vt.edu. A Finnish translation of this page is also available. Last modified: March 27, 2015.
Aerocal Pak #1  Airfoil generation: NACA 4&5 Series* 
stand alone NACA 1135*  Airfoil generation: NACA 6&6A Series* 
Standard atmosphere  Planform Analysis 
Nicolai's sizing program(s)*  Propulsion 
Takeoff Distance Calculation*  Landing Gear Integration 
Simple Lifting Line Theory*  Skin Friction/Form Factor Drag* 
Induced drag  Vortex Lattice Methods 
Airfoil Aerodynamics  Supersonic Aerodynamics

Stability and Control  coming soon: our Matlabbased Mission Program 
This software is a BASIC program that implements the old Aerocal Pak #1, Basic Aerodynamic Relations. It has the NACA 1135 tables, PrandtlMeyer angle and inverse, properties of oblique shocks, the Rayleigh/Fanno line table and the 1976 standard atmosphere. Originally written for a programmable calculator, the code is in QuickBASIC, and runs as is on a Mac with QuickBASIC. A one line change is required to run it on an IBM type PC. The file is standard ascii text.
These codes compute the compressible flow functions given in NACA 1135, plus a few more useful relations. These are executables that replace the NACA 1135 portions of Aerocal Pak#1 above, which doesn't run on many computers anymore.
This is an interactive FORTRAN program that allows the user to construct airfoils using the NACA 4 digit or modified 4 digit airfoil thickness distributions and the NACA 4 digit, 5 digit or 6 and 6A series camber lines. A variety of output options are available on the screen. It can also create a file for use as input to airfoil analysis programs. This file is in the socalled "Jameson format". The file is standard ascii text. It should run using any FORTRAN compiler.The theoretical description of the equations used is available as a pdf file which is actually an Appendix to my Applied Computational Aerodynamics Notes.
This is a FORTRAN program that allows the user to obtain (approximately) the NACA 6 digit or 6A digit airfoils. The program was written at NASA by Cuyler Brooks and Charles Ladson. It appears to be considered to be in the public domain. The file is standard ascii text. It should run using any FORTRAN compiler. The theoretical description of the equations for the camber lines is available as a pdf file which is actually an Appendix to my Applied Computational Aerodynamics Notes. The thickness distribution of these airfoils is not described by a single equation.
This software includes a BASIC program that implements the old Aerocal Pak #2, Basic Geometry for Aerodynamics. I put it up for the little planform and wing analysis programs, which I find still find useful, although today it should be on a spreadsheet. It also generates the shapes for several of the classic bodies of revolution, and has the BASIC (original) version of the FORTRAN program FOILGEN given above for the NACA airfoils. Originally written for a programmable calculator, and then translated to Applesoft, the code is in QuickBASIC, and runs as is on a Mac with QuickBASIC. A one line change is required to run it on an IBM type PC. The file is standard ascii text. The theoretical description is available as a pdf file which is actually an Appendix to my Applied Computational Aerodynamics Notes. An executable of a FORTRAN program in also posted here, together with the manual, sample input and sample output.
I've included four files here. They implement Nicolai's aircraft sizing algorithm in QuickBASIC and more recently, REALbasic. Acsize, provides the size, while the second code, acsweep, covers a range of takeoff gross weights, showing the empty weight required and available. They should run on either Mac or IBM type PCs. In the QuickBASIC versions, data values are set in the program, with the hope that the users will look at the code and see what is going on. The files are standard ascii text. The REALbasic programs are executables for both the Mac and PC. The only modification to Nicolai's notation is a supersonic mission leg.
This is an interactive FORTRAN program that solves the classical Prandtl lifting line theory using the monoplane equation. The file is standard ascii text. It should run using any FORTRAN compiler.
Originally a FORTRAN subroutine (actually TI59 and then Applesoft), a MATLAB file is also provided. stdatmtest.m is the driving script file for the MATLAB function file. The subroutine can be used in other programs. It is the same routine used in Pak #1 above. The units are listed in the subroutine header. A sample main program is included to illustrate the use of the program, and it should run using any FORTRAN compiler, or in MATLAB. Note that the MATLAB version was originally converted from FORTRAN by Paul Buller.
The following webbased standard atmosphere calculators have been suggested by students:
This program can be used to estimate the basic friction drag of an airplane. It is from Mason's Applied Computational Aerodynamics Class, and the acrobat manual is App. D.5 of the class notes. It should run using any FORTRAN compiler. Along with the manual and code, a sample input and the resulting sample output are provided. In November of 2002 an executable version has been added.
We also have a Matlab version from Paul Buller from 1998.
Computation of the induced drag of a single planar surface given the spanload distribution. You get a value of the span e as output. The coefficients of the assumed Fourier Series are computed using a Fast Fourier Transform. The program was written by Dave Ives, and used in numerous programs developed for the government by Grumman.
This program can be used to find the induced drag of a system of nonplanar lifting elements. It was written by Joel Grasmeyer. It has both design and analysis capabilities. This means that you either find the spanload required to obtain the minimum induced drag, or you can input a spanload and find the induced drag. The program also prints out the span efficiency factor e. This program does not give you the twist and camber required to generate the spanloads. Three FORTRAN programs are required and must be linked to run the program.
John Lamar's design program, modified to find the span e for two nonplanar lifting surfaces given the spanload on each surface. This is a more capable version of LIDRAG. This code also finds the wing camber and twist required to obtain this spanload at subsonic speeds. The code will also do an optimization analysis, finding the minimum trimmed drag and spanload required to achieve it.
MinDrag computes the minimum value of the supersonic wave drag, and the area distribution required to attain this value for a given length, XL, volume, nose area [Snose] and base area [Sbase], and with another area specified at a given location along the body [XSgiven, Sgiven]. It uses the formulas published by W.T. Lord and E. Eminton in “Slender Bodies of Minimum Wave Drag,” Journal of the Aeronautical Sciences, August, 1954, pages 569570.
AWAVE is a version of the Harris Wave Drag code. We have it on the design lab PCs for supersonic aerodynamic design. However, it is not ours to distribute openly. We have put the manual (essentially a description of the Craiden geometry data set), and a sample input and output here.
This is a collection of codes that may be useful in aircraft conceptual design. There are two main components, a vortex lattice code to provide at least a rough estimate of the stability and control derivatives, and a spreadsheet to evaluate a design using specified aircraft characteristics. We also have codes that implement the methods of NASA TP 2907 to find the best way to trim the aircraft when you have multiple possibilities. This includes three surfaces, and two surfaces with thrust vectoring.
For the executable of JKayVLM, use these files:
The rest of the material is available below:
These are codes that can be used to estimate some of the key lateral directional analysis, including stability and control derivatives for use in estimating aircraft characteristics. LDstab is basically an implementation of the DATCOM method, with adjustments to match published B747 data. It should be used in place of lateraldirectional estimates from Jacob Kay's code given above, which are on shakey theoretical grounds. This code was developed by Joel Grasmeyer for the trussbraced wing project. The report covers an engine out analysis, but the program doesn't provides the complete analysis. Use VMCA below to do the engine out analysis.
Digital DATCOM is a code that can be used to estimate stability and control derivatives. It is on our design lab PCs. It is an industrial strength code that has a nontrivial learning curve. However, it has the capability to estimate stability and control characteristics at supersonic speeds. This information is not available in Roskam's volumes, so we needed to add it to our computing library.
VMCA is a MATLAB file to calculate the single engine minimum control speed of a jet powered airplane. It was written by Mike Cavanaugh and uses the stability and control derivatives estimated from the lateral/direction program by Joel Grassmeyer, listed above.
The camber line required to produce a specified chord load distribution is computed using the quasivortex lattice method by Prof. Lan of the University of Kansas. The method is valid for two dimensional incompressible flow, and is an original (and very simple) program. Thanks to Tom Zeiller for improvements and bug fixes.
John Lamar's two surface vortex lattice program, developed at NASA Langley. The program treats two lifting surfaces using up to 200 panels. Vortex flows are estimated using the leading edge suction analogy. This program was typed in from the NASA TN D, which contained the listing, by students in Applied Computational Aerodynamics nearly 10 years ago. John Lamar didn't have a copy of the code anymore. It has been modified to run in WATFOR, and to produce 80 column output. Now it runs in Compaq Visual Fortran. In November 2002 an executable has been added. The source now includes PC directory code specific to PCs.
VLM 4.997 is a NASA Langley Vortex Lattice Program which can handle four planforms and up to 400 panels. It is an extension and improvement of the two surface code discussed above. This is an Acrobat Manual only. If you want the code you need to contact NASA Langley. Our version is available for student use in the design lab.
Tornado is a Vortex Lattice Program, written in MATLAB. It comes from KTH, the Royal Institute of Technology, in Stockholm, Sweden. Tomas Melin wrote the program, and Professor Arthur Rizzi was his advisor. It is a very flexible program, and can handle a wide range of geometries. Also, it is still being developed, so check the site for updated versions.
AVLis a very general Vortex Lattice Program. It comes from MIT, and is by the author of the widely used XFOIL airfoil analysis and design code. It is a very flexible program, and can handle a wide range of geometries.
XFOIL is an airfoil analysis and design program from Prof. Mark Drela at MIT. It is for essentially incompressible single element airfoils. However, it includes viscous effects, and can be used in an inverse mode, where the pressure distribution is input and the required geometry found. It runs on workstations and win32 PC systems. Some very good airfoil work has been done by design class students with this code.
Pablo is a subsonic airfoil analysis and design program. It comes from KTH, the Royal Institute of Technology, in Stockholm, Sweden. Christian Wauquiez wrote the program, and Professor Arthur Rizzi was his advisor. Pablo stands for "Potential flow around Airfoils with Boundary Layer coupled Oneway". It is a MATLAB code, so you need to have MATLAB to run it. Eventually, this url will go away, and when it does, Prof. Rizzi has given us permission to put this up on our site at Virginia Tech.
JavaFoil is a subsonic airfoil analysis and design program. It comes from Germany, and is by Martin Hepperle. It does a panel method solution and a boundary layer calculation. Our students like this program.
TSFOIL2 provides a finite difference solution of the transonic small disturbance equation. It will run on my Mac with no problem. The source code is provided as standard ascii text. The code was written by Earll Murman and coworkers, and includes wind tunnel wall effects. It originated at NASA Ames. It’s very old, but appears to be in the public domain. The listing was included in a NASA CR which is referenced in the minimanual provided here as a pdf file. The NASA CR (3064) is also now available as a pdf file from the NASA Technical Reports Server.
arrow is a code to compute the linear theory lift curve slope, aerodynamic center and drag due to lift of arrow wings at supersonic speed.
The best source of propulsion information and software is the site by Professor Jack Mattingly. He is a coauthor of the AIAA Aircraft Engine Design book, and the software that goes with it. Various codes are available from him.
These programs allow the designer to assess the configuration against the landing gear requirements, and also the pavement thickness requirements. Finally, there is a code that will estimate the landing gear weight. The report and codes are available on a separate page that is accessible by looking at the html cover page for the report and software for MAD 960901, "Landing Gear Integration in Aircraft Conceptual Design."
This program computes the takeoff distance, including the balanced field length. The program uses the method of Krenkel and Salzman. Two versions are available. The original FORTRAN program was written by Sean Lynn as an undergraduate research project. After some initial experience, a few improvements to the numerics were made by Pete MacMillin, who felt compelled to convert the code to c. For the test case, there is very little difference between the answers from the two different codes. The input files are also slightly different between the FORTRAN and c verisons. The basic theory is contained in Sean's, final report, which is available as a pdf file.
direct comments and questions to W.H. Mason, whmason@vt.edu