%
% \iffalse
%% Description: a bundle of LaTeX and BibTeX files to produce
%%              AIAA papers and simulated journal articles/notes
%% Keywords: LaTeX, class, AIAA, BibTeX, bibliographic-style, 9pt-option
%% Author: Bil Kleb <w.l.kleb@larc.nasa.gov>
%% Maintainer: same
%% Version: 2.4 <22 feb 1999>
%%
%% Please see the information in file `aiaa.ins' on how you
%% may use and (re-)distribute this file.  Run LaTeX on the file 
%% `aiaa.ins' to get the main aiaa class and other auxilary packages.
%% Also run LaTeX on `aiaa.dtx' (this file) to obtain a users manual
%% and code documentation.
%%
%% NOTE: This file may NOT be distributed if not accompanied
%%       by 'aiaa.ins' and `aiaalgo.eps'.
% \fi
%
% \def\filename{aiaa.dtx}
% \def\fileversion{2.4}
% \def\filedate{1999/02/22}
% \def\docdate{\filedate}
% \date{\docdate}
%
% \newcommand*{\cls}[1]{\textsl{#1}}
% \newcommand*{\pkg}[1]{\textsf{#1}}
% \newcommand*{\file}[1]{\texttt{#1}}
% \newcommand*{\kbd}[1]{\texttt{#1}}
% \setcounter{errorcontextlines}{10}
%
% \MakeShortVerb{\|}
%
%  \CheckSum{1685}
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
%
% \title{%
% \textsf{aiaa} -- a \LaTeX{} Class and \BibTeX{}
% Style\\ for AIAA\thanks{The American Institute of Aeronautics
% and Astronautics.}\ \ Conference Papers\\ and Journal
% Submission/Simulation\thanks{This document describes \textsf{aiaa} version 
% \fileversion which was born on \docdate .}}
%
% \author{bil kleb\thanks{Research Scientist, NASA Langley
% Research Center, Hampton, Virginia.}}
%
% \maketitle
%
% \begin{abstract}
% This document describes the \textsf{aiaa} distribution which 
% is centered around a modification of the standard \LaTeX{}
% article class, \cls{article.cls}.  The new class produces
% AIAA-conformant\footnote{Note this distribution is not a
% product of, nor endorsed by, the AIAA.}
% conference papers and journal submittals---it
% will even simulate the typesetting of journal articles and notes
% for length-determination purposes.  This distribution also contains
% a (mostly) AIAA-compliant bibliographic style sheet,
% sample documents, a sample presentation, and other test equipment.
% \end{abstract}
%
% \tableofcontents
%
% \section{Introduction}
%
% The \textsf{aiaa} distribution consists of a \LaTeX{} class
% and various other files which are supposed to simplify
% the task of producing an AIAA conference paper
% and the subsequent journal submission
% For instance, with a simple,
% one-word option in the beginning of the document, a manuscript can
% take the form of a two-column conference paper replete with
% cover-page or a double-spaced journal submission manuscript
% with figures and tables at the end, including the required
% caption lists.
%
% \section{Userguide}
%
% I apologize for the sparseness of this documentation; but, hey,
% this is not in my job description.\ |;)|\ \ Hopefully the sample
% documents \file{smpaiaa.tex}, \file{smpsubf.tex}, and \file{smptalk.tex}
% provide suitable documentation through example.
%
% \subsection{Requirements}
%
% The \kbd{aiaa} distribution was developed using
% \LaTeXe{} of 1995/12/01, patch level 1,
% running \TeX{} 3.14159 and
% \texttt{dvips} 5.58f---the te\TeX{} distribution 0.3.3.\footnote{
% The \kbd{aiaa} distribution has also been demonstrated on
% a Mac running the {\scshape Oz}\TeX{} \TeX{} distribution and a
% PC running the Mik\TeX{} \TeX{} distribution.}
% So anything more recent should work, but anything older: no guarantees.
% In particular, your \kbd{graphicx} package needs
% to be newer than September 1995 so that the |keepaspectratio|
% command is available.
%
% The \cls{aiaa} class depends
% on having access to a number of packages.\footnote{When you process
% a file with \LaTeX{}, it will let you which packages it is
% missing.  The less common ones are \pkg{dropping} and \pkg{caption2} while
% the other required packages:
% \pkg{lastpage}, \pkg{setspace}, \pkg{endfloat}, \pkg{overcite},
% \pkg{graphicx}, and \pkg{fancyhdr} are usually bundled with
% most \LaTeX{} distributions.}
% If your local site does not have all the packages necessary, they
% can be obtained from your nearest Comprehensive TeX Archive
% Network (CTAN) site.  In fact, chances are that this is where you found
% this distribution.  Details on how to obtain packages from a
% CTAN site are available at |http://www.tug.org/|
% or various \LaTeX{} reference books~\cite{companion,guide}.
% Especially helpful in locating various \LaTeX{} packages is
% the \kbd{Catalogue.html} web page found in the \kbd{help/Catalogue}
% directory of CTAN.
%
% \subsection{Setup}
%
% If you have not already run \file{aiaa.ins} through \LaTeX{},
% do so.  The \pkg{docscript} utility (part of \LaTeX{})
% will rip the code segments out of \file{aiaa.dtx}
% and save them in several files. If you encounter an error
% on installation like:
% \begin{verbatim}
% ! Undefined control sequence
% \batchLine -> generate
%          {\file {aiaa.cls}{\from{aiaa.dtx}{class}}}
%  1.728 \processbatchFile
% \end{verbatim}
% this means that your \pkg{docstrip} is very old and that you
% will need to update your entire \LaTeX{} distribution to
% take advantage of the \pkg{aiaa} package.
%
% Move the files \file{aiaa.cls},
% \file{aiaa9pt.sty}, \file{aiaaenf.cfg}, and \file{aiaalgo.eps}
% to a directory searched by \TeX{}\footnote{For a Unix te\TeX{} installation,
% a privileged user could put these files in a directory named
% something like \kbd{/usr/local/teTeX/texmf/tex/latex/aiaa}\ for
% the entire site to use, remembering to run \kbd{texhash} to
% re-configure te\TeX{} to search the new directory;
% or, a lowly user could make their own directory, {\it e.g.},
% \kbd{$\sim$/tex/inputs}, put the files in there, and set
% the environment variable \kbd{TEXINPUTS} via `\kbd{setenv
% TEXINPUTS $\sim$/tex/inputs:}'. The colon represents the system search
% path so, in this case, the user files take precedence.
% On a Mac or PC installation put these files in
% a folder named something like \file{TeX-inputs}.}
% and the file \file{aiaa.bst} to
% a directory searched by \BibTeX{}.\footnote{%
% Similar to preceding footnote, only on Unix use
% the environment variable \kbd{BSTINPUTS}
% for the bibliographic style file and
% \kbd{BIBINPUTS} for the bibliographic database; for Mac's,
% use the \file{BibTeX-inputs} folder, failing that try
% using the \file{TeX-inputs} folder.}
% Once things are installed, try to \LaTeX{} the sample AIAA
% paper in the \file{demo/paper} directory, |smpaiaa.tex|.  It should
% produce something similar to |smpaiaa.ps|.
% 
% \subsection{Usage}
% The \cls{aiaa} class is envoked by including\\
% |  \documentclass[|{\itshape options}|]{aiaa}|\\
% at the beginning of your document.  The package
% recognizes the following options: |submit|, |paper|,
% |article|, |note|, and |cover|.
% The |paper| option is the default and the |submit| option
% overrides any other option.  The |cover| option produces
% a cover-page for conference papers or simulated journal
% reprints.
% In addition, any options that the standard \LaTeX{} article
% class accepts can be also inserted, {\it e.g.},
% \kbd{draft}.\footnote{The \kbd{draft}
% option replaces figures with a labeled box of the appropriate size.}
% Note, when using the |note|
% option, your title and author information may need to be
% modified with extra line breaks (|\\|)
% since this information is no longer allowed to span both
% columns and may overfill the short tex twidth available.
% Other than this, the document is written just like one were
% using the standard \LaTeX{} article document class; and thus, I
% don't have to write much more on usage since it has already
% been documented by others in various \LaTeX{}
% books~\cite{companion,guide,latex}. However,
% some of the old commands have slightly different behaviors and there are
% a few new commands designed to make life a little brighter;
% these are discussed in the following sections.
%
% \subsection{General Commands}
%
% Several standard \LaTeX{} commands have been modified
% to behave differently under the new class. In addition,
% several new commands have been introduced to ease
% document preparation. Both types are discussed in the
% following subsections.
%
% \subsubsection{New Behavior from Old Commands}
%
% \DescribeMacro{\abstract}
% The |\abstract| command has been redefined within the \cls{aiaa}
% class to behave as part of the |\maketitle| sequence.  Simply
% load |\abstract| as you would |\title| or |\author|, and
% as long as you have not selected the options |submit| or |note|
% (which do not allow for abstracts), the text loaded into
% the |\abstract| command will be typeset, indented and centered,
% underneath the title/author section. Remember |\abstract| must
% be loaded {\bfseries before} |\maketitle| is invoked.  This is
% typically done in the preamble\footnote{%
% The preamble is defined as anywhere between the
% \cs{documentclass}\texttt{\string{\string}}
% and \cs{begin}\texttt{\string{document\string}} commands.}
% of your \LaTeX{} document.
%
% \DescribeMacro{\date}
% The \cls{aiaa} class automatically nulls the |\date| command used
% by |\maketitle|.  Standard \LaTeX{} behavior of |\maketitle|
% is to typeset the current date as part of the title section
% if one is not given. So, normal one has to issue the command:
% |\date{}| when producing AIAA papers.  When using the
% \cls{aiaa} class, this is no longer necessary; this command
% has already been issued.
%
% \DescribeMacro{\and}
% \DescribeMacro{\maketitle}
% Suffice it to say that |\maketitle| and |\and| have also been
% hacked, the ramifications of which I have yet to determine.
%
% \DescribeMacro{\section}
% \DescribeMacro{\subsection}
% \DescribeMacro{\subsubsection}
% \DescribeMacro{\paragraph}
% \DescribeMacro{\subparagraph}
% One no longer has to use the starred versions of these
% commands to defeat the numbering of sections.  The counter
% \kbd{secnumdepth} has been set to $-2$ via,
% |\setcounter{secnumdepth}{-2}|
% so that even the unstarred versions of the sectioning commands
% never produce a number.\footnote{The \kbd{secnumdepth} counter
% controls how many
% nesting levels of section numbers should be produced.
% Of course you can defeat this by changing the counter back to its
% \LaTeX{} \cls{article} class default value of $3$ which
% will number sections down to subsections.}
% In addition, the fonts, sizes, and positions normally produced by
% these commands have been modified to make the output similar
% to a typeset journal article.  In other words,
% we take advantage of the fact that you are not using a
% typewriter, {\it e.g.}, AIAA-suggested underlining for section
% names, etc.{} is replaced by the typesetting-capable equivalent.
%
% \subsubsection{New Commands}
%
% \DescribeMacro{\thanksibid}
% The command |\thanksibid| is very similar to the standard
% |\thanks| command which is used when footnoting
% the author affliations within the |\author| field.
% The distinction is that the |\thanksibid| command allows one
% to repeat a given footnote symbol without repeating the associated
% footnote text.  Example of use:
% \begin{verbatim}
%   \author{%
%  Peter Gnoffo\thanks{Some thanks for a peter.},
%  Bil Kleb\thanks{Some thanks for a bill.},
%  Bill Wood\thanksibid{2}, and % use same footnote as for second author.
%  Marge Mithus\thanks{Some thanks for a marge.}
%  }
% \end{verbatim}
% Thus, |\thanksibid{2}| would only produce a footnote symbol
% at the end of Bill Wood's name and it would not generate
% another footnote.  Note that using the |\thanksibid| command
% does not increment the footnote counter, so for the case given
% above, an argument of `4' would not be a valid choice.
% This command was developed so that when you have \cls{aiaa}
% make a cover sheet, extraneous footnote symbols will not be
% present.
%
% \DescribeMacro{\dropword}
% The command |\dropword| is used for the first word of the
% introduction, and for any option other than |submit|, will
% produce a `dropped' capital for the beginning of the paragraph.
% Its use is simply:\\
% |  \dropword First words of the introduction, etc.|\\
% Note: this command also capitalizes the remaining
% portion of the first word.
% This macro relies on the presence of the |dropping| package
% by Mats Dahlgren~\cite{dropping}.
%
% \DescribeMacro{\incfig}
% The |\incfig| command is used for including figures via David Carlisle's
% \pkg{graphicx} package~\cite{graphicx}.  The
% command |\incfig| command is merely a shorter version of
% the original |\includegraphics| command along with a centering
% command, {\it i.e.}:\\
% |   \newcommand{\incfig}{\centering\includegraphics}|\\
% It is typically used for including Encapsulated Postscript files
% (|*.eps|) within a |figure| environment.
% For example, to include
% a figure named |figa.eps| residing in a |figs| subdirectory, one
% would use:
% \begin{verbatim}
%    and \Figure{f:figurea} shows that things are purple.
%    \begin{figure}
%       \incfig{figs/figa}
%       \caption{This is the caption for figure a.}
%       \label{f:figurea}
%    \end{figure}
%    \Figure{f:figurea} also shows that people are green.
% \end{verbatim}
% For more information regarding the inclusion of external
% graphic files, see the file \file{epslatex.ps} in the \kbd{info}
% directory of the CTAN.  Also, read the Graphics Guide that
% is part of the \pkg{graphicx} package.
%
% \DescribeEnv{subfigmatrix}
% Via the \pkg{subfigure} package and a new environment, |subfigmatrix|,
% one can easily create a ``matrix'' of subfigures. The
% environment takes one argument: the number of columns across
% the matrix will be.
% For instance, to produce a matrix of four subfigures, two by two:
% \begin{verbatim}
%   \begin{figure}
%     \begin{subfigmatrix}{2}
%        \subfigure[Subfigure one.  ]{\incfig{one}\label{f:matrix_1}}
%        \subfigure[Subfigure two.  ]{\incfig{two}}
%        \subfigure[Subfigure three.]{\incfig{three}}
%        \subfigure[Subfigure four. ]{\incfig{four}\label{f:matrix_4}}
%     \end{subfigmatrix}
%     \caption{A `matrix' of four subfigures.}
%     \label{f:matrix}
%   \end{figure}
%   and with imbedded \label commands we can refer to
%   Figure~\ref{f:matrix} in entirety or specific subfigures like
%   subfigure~\ref{f:matrix_1} or subfigure~\ref{f:matrix_4}.
% \end{verbatim}
% See the  demonstration file \file{smpsubf.tex} which comes with
% this distribtuion for more extensive examples.
%
% \subsection{Layout-specific Commands}
%
% The following commands are used to load information for other
% commands that produce appropriate headers, footers, cover-page
% items, and document notices---{\it e.g.}, copyright conditions. All
% of these commands are normally set in the preamble
% of your document (similar to |\author| and |\title|).
% For a more modular, and perhaps cleaner approach, you could
% place all of it in a file, \file{preamble.tex}, and use
% |\input{preamble}| to include it in your main document.
%
% \subsubsection{Header and Footer Information}
%
% \DescribeMacro{\SubmitName}
% \DescribeMacro{\PaperNumber}
% \DescribeMacro{\ArticleIssue}
% \DescribeMacro{\ArticleHeader}
% \DescribeMacro{\NoteHeader}
% The commands |\SubmitName|, |\PaperNumber|, 
% |\ArticleIssue|, |\ArticleHeader|, and
% |\NoteHeader| are used to put appropriate items in the header
% and footer of each page, {\it e.g.},
% \begin{verbatim}
%   \SubmitName{Kleb}
%   \PaperNumber{96--0825}
%   \ArticleIssue{Vol.~32, No.~6, November--December 1995}% first page
%   \ArticleHeader{Kleb et al: Pitch-Over Maneuver}% subsequent pages
%   \NoteHeader{J.Spacecraft, Vol.~32, No.~6: Engineering Notes}
% \end{verbatim}
% The command |\SubmitName| is used to mark the main author's
% name on all pages for the
% journal manuscript submission option: |submit|.  The
% |\PaperNumber| is used to include the paper number
% for AIAA conference papers.
% The commands |\ArticleIssue|,
% |\ArticleHeader|, and |\NoteHeader| are used to create
% the appropriate headers when simulating a journal article or
% note.  The contents of |\ArticleIssue| appear on the first page
% and the contents of |\ArticleHeader| appear on subsequent pages while for
% journal note simulations the contents of |\NoteHeader| is used for all pages.
%
% \subsubsection{Cover-page Information}
%
% \DescribeMacro{\CoverFigure}
% \DescribeMacro{\Conference}
% \DescribeMacro{\JournalName}
% \DescribeMacro{\JournalIssue}
% \DescribeMacro{\JournalPage}
% The commands |\CoverFigure|,
% |\Conference|, |\JournalIssue|, |\JournalPage|, and |\JournalName| provide
% information for producing cover-pages.
% \begin{verbatim}
%   \CoverFigure{tstfig.eps}
%   \Conference{31st AIAA Aerospace Sciences \\
%                  Meeting and Exhibit \\
%            {\mfseries January 6--9, 1997/Reno, NV}}% note: non-bold date/loc.
%   \JournalName{Journal of Spacecraft and Rockets}
%   \JournalPage{715}
%   \JournalIssue{Volume 32, Number 6}
% \end{verbatim}
% The commands |\CoverFigure| and
% |\Conference| define a representative figure (optional)
% and conference name/date/location to be used on the cover-page
% of a conference paper, while
% the commands |\JournalName| and |\JournalIssue| are for the
% cover-page produced for journal article or note reprint simulations.
%
% \subsubsection{Copyright and Other Document Notices}
%
% \DescribeMacro{\PaperNotice}
% \DescribeMacro{\JournalNotice}
% A footnote describing the copyright conditions
% and other information about the document are incorporated via the
% |\PaperNotice| and |\JournalNotice| commands.  These normally include
% one of the the copyright series
% of commands: |\CopyrightA|, |\CopyrightB|, |\CopyrightC|, or
% |\CopyrightD|, described below.
% To use, simply include something like the following in
% the your document's preamble:
% \begin{verbatim}
%   \PaperNotice{\CopyrightA{1996}}
%   \JournalNotice{Presented as Paper 96--0825 at the AIAA 34th
%                  Aerospace Sciences Meeting, Reno,~NV,
%                  Jan.~15--18,~1996; received Feb.~15,~1996;
%                  revision received Nov.~25,~1996. \CopyrightC}
% \end{verbatim}
%
% \DescribeMacro{\CopyrightA}
% \DescribeMacro{\CopyrightB}
% \DescribeMacro{\CopyrightC}
% \DescribeMacro{\CopyrightD}
% The copyright commands will expand to one of the standard AIAA
% forms: A, B, C, or D.
% Note: they each have different arguments---or no
% arguments---depending on the requirements:\\
% |  \CopyrightA{|\textit{year}|}|\\
% |  \CopyrightB{|\textit{year}|}{|\textit{full name or company}|}|\\
% |  \CopyrightC|\\
% |  \CopyrightD{|\textit{year}|}|\\
% See your AIAA copyright instructions for which form to use.
%
% \section{Known Problems}  
% 
% \begin{itemize}
%
%   \item The bibliographic style sheet |aiaa.bst| isn't fully
%         tested; and thus, you may need to fiddle with your
%         |.bbl| file for your final copy, {\it i.e.}, edit |file.bbl|
%         after running a \LaTeX{}, \BibTeX{}, \LaTeX{} sequence,
%         but before running \LaTeX{} the final time.  Note, if
%         you run \BibTeX{} after modifying |file.bbl|, you will
%         lose your modifications when \LaTeX{} is run
%         again. Therefore, it is best to turn off write-permission
%         on \file{file.bbl} after you have it correct.
%
%   \item When using the |submit| option for a document which
%         contains subfigures,\footnote{See
%         sample documents \file{smpaiaa.tex} and
%         \file{smpsubf.tex} for examples of subfigure use.}
%         some of the subfigures my be clipped.
%         In fact, the way the |submit| option deals with subfigures
%         needs work---to put it mildly.  The current work-around
%         is to add \kbd{width} or \kbd{height} options to your |\incfig|
%         commands until the figures fit properly.  These options
%         are explained in the documentation which comes with
%         the \pkg{graphics} package~\cite{graphicx}.
%
%   \item Currently you have to make subfigure captions appear
%         in bold font explicitly, {\it e.g.},\\
%         |  \subfigure[\bf Subfigure caption.]{\incfig{fig.eps}}|\\
%         The next version of \pkg{subfigure} is supposed to remedy this.
%
%   \item The notices come after the author footnotes.  To
%         produce the correct behavior requires significant
%         changes to the |\maketitle| command.
%
%   \item The simulated journal article modes use the standard, free,
%         Computer Modern Fonts.  The AIAA journals most likely
%         use licensed (\$) fonts.
%
%   \item The simulated journal cover-pages do not have anywhre near
%         the correct font for the journal name---does anyone know
%         where to get such a {\em free}, tall, bold, squashed
%         helvetic-style font?  It looks like Bitstream's Aurora
%         condensed\ldots
%
%   \item (Not actually an \pkg{aiaa} problem.)
%         Using the starred versions of |figure| and |table|
%         environments (floats which span both columns)
%         inter-mixed with the unstarred versions (single-column
%         wide floats) often creates a situation where the
%         figures or tables appear out of order. For the final
%         copy, this can normally be corrected with judicious
%         use of float position specifiers.\footnote{Recall, {\bf
%         never} use just \kbd{[h]}, always give other options or
%         that float might get `stuck' and force it and all the
%         following floats to the end of the document.}
%         Unfortunately, this is
%         stock, documented behavior for \LaTeX{}.
%         However, recently a package \pkg{fix2col} has become available
%         which appears to rectify this behavior.  It can be
%         found on CTAN in the
%         \kbd{macros/latex/contrib/supported/carlisle} directory.
%
% \end{itemize}
%
% \section{Acknowledgements}
%
% Bundling and documenting this |aiaa| distribution in docstrip
% format was done by using other packages as a model,
% particularly, Mats Dahlgren's \pkg{dropping}~\cite{dropping}
% and Jeff Goldberg {\em et al}'s \pkg{endfloat}~\cite{endfloat}.
%
% I want to thank the people of the |comp.text.tex| newsgroup,
% the \TeX{}/\LaTeX{} Frequently Asked Questions maintainers,
% and various package authors for patiently answering my inane
% questions, in particular, but in no particular order:
% \begin{list}
%       {$\triangleright$}
%       {\setlength{\itemsep}{0pt}\setlength{\parsep}{0pt}}
%   \item Donald Arsenau (|asnd@reg.triumf.ca|)
%   \item Robin Fairbairns (|Robin.Fairbairns@cl.cam.ac.uk|)
%   \item Piet van Oostrum (|piet@cs.ruu.nl|)
%   \item Jeroen Nijhof (|nijhof@th.rug.nl|)
%   \item Steven Douglas Cochran (|sdc+@cs.cmu.edu|)
%   \item Jeffrey Goldberg (|J.Goldberg@cranfield.ac.uk|)
%   \item Mark Wooding (|mdw@excessus.demon.co.uk|)
%   \item Paul Foley (|mycroft@actrix.gen.nz|)
%   \item David Kastrup (|dak@fsnif.neuroinformatik.ruhr-uni-bochum.de|)
%   \item Jerry Leichter (|leichter@smarts.com|)
%   \item P.~W.~Daly (|daly@linpwd.mpae.gwdg.de|)
%   \item David Carlisle (|carlisle@goofy.zdv.Uni-Mainz.de|)
%   \item Edward Sznyter (|sznyter@babel.com|)
% \end{list}
% 
% \section{Sending a Bug Report}
% The \textsf{aiaa} distribution is highly likely to contain
% bugs.  Reports of bugs in the package are most welcome.
% However, I consider this to be a minimally ``supported'' package.
% I will do what I can, when I can---promising nothing.
% Before filing a bug report, please take the following actions:
% \begin{enumerate}
%   \item Ensure your problem is not due to your own input file(s)
%         styles sheet(s), or package(s);
%   \item Ensure your problem is not covered in the section 
%        ``Known Problems'' above;
%   \item Try to isolate the problem by writing a {\it minimal}
%         \LaTeX{} input file which reproduces the unexpected behavior.
%         Include the command\\ 
%         |  \setcounter{errorcontextlines}{50}|\\ 
%         in your input to provide extra context when things go awry;
%   \item Run your file through \LaTeX{};
%   \item Send a description of your problem, the input file 
%         and the log file via e-mail to: \texttt{w.l.kleb@larc.nasa.gov}.
% \end{enumerate}
% I am not in the business of answering generic \TeX{}/\LaTeX{}
% questions; so if your problem appears to be such, I will
% let you know.\bigskip
% 
% \noindent{\itshape Enjoy(?) the everpresent deadline and enjoy your
% \LaTeX!\raisebox{-\baselineskip}{---bil}}
%
% \begin{thebibliography}{1}
%
% \bibitem{companion}
% Michel Goossens, Frank Mittelbach, and Alexander Samarin.
% \newblock{\em The {\LaTeX} Companion}.
% \newblock Addison-Wesley, Reading, Massachusetts, 1994.
%
% \bibitem{guide}
% Helmut Kopka and Patrick W. Daly.
% \newblock{\em A Guide to {\LaTeXe}: Document Prepartion for
%               Beginners and Advanced Users}.
% \newblock 2nd ed.
% \newblock Addison-Wesley, Reading, Massachusetts, 1994.
%
% \bibitem{latex}
% Leslie Lamport.
% \newblock{\em {\LaTeX}: A Document Preparation System}.
% \newblock 2nd ed.
% \newblock Addison-Wesley, Reading, Massachusetts, 1994.
%
% \bibitem{dropping}
% Mats Dahlgren.
% \newblock \pkg{dropping}---A \LaTeX{} Macro for Dropping
%           the First Character(s) of a Paragraph.
% \newblock June 1996. (version~0.1)
% \newblock Electronic Documentation.
%
% \bibitem{graphicx}
% David Carlisle.
% \newblock Packages in the `graphics' bundle.
% \newblock December 1995.
% \newblock Electronic Documentation.
%
% \bibitem{endfloat}
% James Darrell McCauley and Jeff Goldberg.
% \newblock The \texttt{endfloat} Package.
% \newblock October 1995. (version~2.4i)
% \newblock Electronic Documentation.
%
% \end{thebibliography}
%
% \StopEventually{\PrintChanges}
%
% \newpage
% 
% \section{The Documentation}
%
% The following contains the documentation driver for this user manual.
%    \begin{macrocode}
%<*driver>
\documentclass{ltxdoc}
\setlength\hfuzz{2pt}% reduce overfull warnings
\OnlyDescription   % stop at \StopEventually comment to get everything
%\RecordChanges    % display change information
\begin{document}
  \DocInput{aiaa.dtx}
\end{document}
%</driver>
%    \end{macrocode}
% 
% \section{The Code}
%
% For the interested reader(s), following is a semi-documented
% of the class code, the 9pt style, bibliographic style file, and
% the endfloat configuration.  These detailed coding bits
% are not included in the Users' Manual by default, if you really
% want to see these in typeset form, you need to comment out the
% |\OnlyDescription| line in the |<driver>| section of this file
% \file{aiaa.dtx}.
% If you feel the need to
% modify things, simply cut the section you want to change
% and save it to a file named \file{mymods.sty}.  Then modify
% the code in \file{mymods.sty} to suit your needs and include
% it in your document via |\usepackage{mymods}| in the
% preamble.
%
% \subsection{The class code}
%
% The underlying logic is supposed to look like:\footnote{Picture
% environment flowchart generated by flow 0.99b.}\\[1pt]
%
% \setlength\unitlength{1.8em}
% \thicklines
% \begin{picture}(16.000000,20.000000)(-1.000000,-20.000000)
% \put(1.0000,-0.5000){\oval(2.0000,1.0000)}
% \put(0.0000,-1.0000){\makebox(2.0000,1.0000)[c]{\shortstack[c]{
% begin
% }}}
% \put(1.0000,-1.0000){\vector(0,-1){1.0000}}
% \put(-1.0000,-4.0000){\framebox(4.0000,2.0000)[c]{\shortstack[c]{
% code common\\
% to all options
% }}}
% \put(1.0000,-4.0000){\vector(0,-1){1.0000}}
% \put(-0.5000,-6.5000){\line(1,1){1.5000}}
% \put(-0.5000,-6.5000){\line(1,-1){1.5000}}
% \put(2.5000,-6.5000){\line(-1,-1){1.5000}}
% \put(2.5000,-6.5000){\line(-1,1){1.5000}}
% \put(-0.5000,-8.0000){\makebox(3.0000,3.0000)[c]{\shortstack[c]{
% \texttt{submit}?
% }}}
% \put(2.5000,-6.0500){\makebox(0,0)[lt]{No}}
% \put(1.4500,-8.0000){\makebox(0,0)[lb]{Yes}}
% \put(1.0000,-8.0000){\vector(0,-1){1.0000}}
% \put(0.0000,-11.0000){\framebox(2.0000,2.0000)[c]{\shortstack[c]{
% \texttt{submit}\\
% code
% }}}
% \put(1.0000,-11.0000){\vector(0,-1){1.0000}}
% \put(1.0000,-12.5000){\oval(2.0000,1.0000)}
% \put(0.0000,-13.0000){\makebox(2.0000,1.0000)[c]{\shortstack[c]{
% done
% }}}
% \put(2.5000,-6.5000){\vector(1,0){1.0000}}
% \put(3.5000,-7.5000){\framebox(5.0000,2.0000)[c]{\shortstack[c]{
% \texttt{paper}/\texttt{article}\\
% /\texttt{note} code
% }}}
% \put(6.0000,-7.5000){\vector(0,-1){1.0000}}
% \put(4.5000,-10.0000){\line(1,1){1.5000}}
% \put(4.5000,-10.0000){\line(1,-1){1.5000}}
% \put(7.5000,-10.0000){\line(-1,-1){1.5000}}
% \put(7.5000,-10.0000){\line(-1,1){1.5000}}
% \put(4.5000,-11.5000){\makebox(3.0000,3.0000)[c]{\shortstack[c]{
% \texttt{paper}?
% }}}
% \put(7.5000,-9.5500){\makebox(0,0)[lt]{No}}
% \put(6.4500,-11.5000){\makebox(0,0)[lb]{Yes}}
% \put(7.5000,-10.0000){\vector(1,0){1.0000}}
% \put(8.5000,-11.0000){\framebox(4.0000,2.0000)[c]{\shortstack[c]{
% \texttt{article} or\\
% \texttt{note} code
% }}}
% \put(10.5000,-11.0000){\vector(0,-1){1.0000}}
% \put(9.0000,-13.5000){\line(1,1){1.5000}}
% \put(9.0000,-13.5000){\line(1,-1){1.5000}}
% \put(12.0000,-13.5000){\line(-1,-1){1.5000}}
% \put(12.0000,-13.5000){\line(-1,1){1.5000}}
% \put(9.0000,-15.0000){\makebox(3.0000,3.0000)[c]{\shortstack[c]{
% \texttt{article}?
% }}}
% \put(12.0000,-13.0500){\makebox(0,0)[lt]{No}}
% \put(10.9500,-15.0000){\makebox(0,0)[lb]{Yes}}
% \put(12.0000,-13.5000){\vector(1,0){1.0000}}
% \put(13.0000,-14.5000){\framebox(2.0000,2.0000)[c]{\shortstack[c]{
% \texttt{note}\\
% code
% }}}
% \put(14.0000,-14.5000){\vector(0,-1){1.0000}}
% \put(14.0000,-16.0000){\oval(2.0000,1.0000)}
% \put(13.0000,-16.5000){\makebox(2.0000,1.0000)[c]{\shortstack[c]{
% done
% }}}
% \put(10.5000,-15.0000){\vector(0,-1){1.0000}}
% \put(9.0000,-18.0000){\framebox(3.0000,2.0000)[c]{\shortstack[c]{
% \texttt{article}\\
% code
% }}}
% \put(10.5000,-18.0000){\vector(0,-1){1.0000}}
% \put(10.5000,-19.5000){\oval(2.0000,1.0000)}
% \put(9.5000,-20.0000){\makebox(2.0000,1.0000)[c]{\shortstack[c]{
% done
% }}}
% \put(6.0000,-11.5000){\vector(0,-1){1.0000}}
% \put(5.0000,-14.5000){\framebox(2.0000,2.0000)[c]{\shortstack[c]{
% \texttt{paper}\\
% code
% }}}
% \put(6.0000,-14.5000){\vector(0,-1){1.0000}}
% \put(6.0000,-16.0000){\oval(2.0000,1.0000)}
% \put(5.0000,-16.5000){\makebox(2.0000,1.0000)[c]{\shortstack[c]{
% done
% }}}
% \end{picture}\\
% This does not mean the code as a whole is organized according
% to this; but, rather this is the case for each
% macro/environment defined.
%
% First, the package is to identify itself:
%    \begin{macrocode}
%
%<*class>
%
\NeedsTeXFormat{LaTeX2e}[1994/06/01]
\ProvidesClass{aiaa}[1999/02/22 v2.4 AIAA document class]
%    \end{macrocode}
% Flags
%    \begin{macrocode}
\newif\if@submit
\newif\if@paper
\newif\if@article
\newif\if@note
\newif\if@cover
%    \end{macrocode}
% Default settings
%    \begin{macrocode}
\@submitfalse
\@papertrue
\@articlefalse
\@notefalse
\@coverfalse
%    \end{macrocode}
% declaration of options
% Note that options will be processed in order of the |\DeclareOption|
% commands in this file, so since we want submit to take precedence
% over all the other options, we process it last. Note also that
% all flags are reset with each option, so that they are
% independent of the defaults.
%    \begin{macrocode}
\DeclareOption{note}{\@notetrue\@articlefalse\@submitfalse\@paperfalse}
\DeclareOption{article}{\@articletrue\@notefalse\@paperfalse\@submitfalse}
\DeclareOption{paper}{\@papertrue\@articlefalse\@notefalse\@submitfalse}
\DeclareOption{submit}{\@submittrue\@paperfalse\@articlefalse}
\DeclareOption{cover}{\@covertrue}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}%
                \typeout{NOTE: Passing ``\CurrentOption" option on to the
                         standard LaTeX article class}}
%    \end{macrocode}
% actually process the options
%    \begin{macrocode}
\ProcessOptions
\typeout{}
\if@submit%
  \typeout{NOTE: aiaa journal submission mode
          - all other aiaa options ignored}
\else% paper, article, or note
  \if@paper%
    \typeout{TYPESETTING in AIAA conference PAPER format ...}
  \else% article or note
    \if@article%
      \typeout{TYPESETTING in AIAA journal ARTICLE simulation format ...}
    \else% note
      \typeout{TYPESETTING in AIAA journal NOTE simulation ...}
    \fi
  \fi
\fi
\typeout{}
%    \end{macrocode}
% load the \LaTeX{} standard article class with |twoside| and
% |twocolumn| for all but the submit option.  For a journal article
% or note, also load the aiaa9pt package.
%    \begin{macrocode}
\if@submit%
  \LoadClass[12pt]{article}%
  \RequirePackage[noheads,tablesfirst,nomarkers]{endfloat}%
  \RequirePackage{setspace}%
  \RequirePackage{lastpage}%
\else% paper, article or note
  \LoadClass[twoside,twocolumn]{article}%
  \RequirePackage[dvips]{dropping}% dvips set to make compatible with pdflatex
  \RequirePackage{lastpage}%
  \if@paper%
    \relax%
  \else% article or note
    \RequirePackage{aiaa9pt}%
  \fi%
\fi
%    \end{macrocode}
% packages used by this class for all options
%    \begin{macrocode}
\RequirePackage{graphicx}
\RequirePackage{overcite}
\RequirePackage{caption2}
\RequirePackage{fancyhdr}
\RequirePackage{subfigure}[1995/03/06]
%\RequirePackage[bf]{subfigure}[199!/??/??] % when new version comes out
%    \end{macrocode}
%
% main code
%
% page sizes:
%    \begin{macrocode}
\if@submit
  \setlength{\topmargin}{-0.25in}
  \setlength{\headsep}{9.5pt}
  \setlength{\textheight}{9in}
  \setlength{\textwidth}{6.5in}
  \setlength{\oddsidemargin}{0.0in}
  \AtBeginDocument{\onehalfspacing}% turn on `doublespacing'
\else% paper, article, or note
  \setlength{\topmargin}{-0.75in}
  \if@paper
    \setlength{\headsep}{9.5pt} 
    \setlength{\textheight}{9.5in}
    \setlength{\textwidth}{6.75in}
    \setlength{\columnsep}{0.25in}
    \setlength{\footskip}{0.25in}
  \else% article or note
    \setlength{\topmargin}{-0.75in}
    \setlength{\headsep}{10pt}
    \setlength{\footskip}{16pt}
    \setlength{\textheight}{10in}
    \setlength{\textwidth}{7in}
    \setlength{\columnsep}{0.375in}
    \setlength{\oddsidemargin}{-0.25in}
    \renewcommand{\baselinestretch}{0.9}
  \fi
  \setlength{\evensidemargin}{\oddsidemargin}
\fi
%    \end{macrocode}
%
% \begin{macro}{\SubmitName}
% \begin{macro}{\PaperNumber}
% \begin{macro}{\ArticleHeader}
% \begin{macro}{\ArticleIssue}
% \begin{macro}{\JournalName}
% \begin{macro}{\JournalIssue}
% \begin{macro}{\JournalPage}
% \begin{macro}{\NoteHeader}
% various macros
%    \begin{macrocode}
\newcommand*{\SubmitName}[1]%
            {\def\AA@submitname{#1}}
\newcommand*{\PaperNumber}[1]%
            {\def\AA@papernumber{#1}}
\newcommand*{\ArticleHeader}[1]%
            {\def\AA@articleheader{#1}}
\newcommand*{\ArticleIssue}[1]%
            {\def\AA@articleissue{#1}}
\newcommand*{\JournalName}[1]%
            {\def\AA@journalname{#1}}
\newcommand*{\JournalIssue}[1]%
            {\def\AA@journalissue{#1}}
\newcounter{AA@journalpage}
\newcommand*{\JournalPage}[1]%
            {\setcounter{AA@journalpage}{#1}}
\newcommand*{\NoteHeader}[1]%
            {\def\AA@noteheader{#1}}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% initialize them
%    \begin{macrocode}
\SubmitName{}
\PaperNumber{}
\ArticleHeader{}
\ArticleIssue{}
\JournalName{}
\JournalIssue{}
\NoteHeader{}
\setcounter{AA@journalpage}{1}
%    \end{macrocode}
% fancy headers/footers:
%    \begin{macrocode}
\pagestyle{fancy}% note: must be issued after any \textwidth command
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\fancyhf{} % clear all footers and headers
\if@submit
  \rfoot{\footnotesize\scshape\thepage\ of \pageref{LastPage}}
  \lfoot{\footnotesize\scshape\AA@submitname}
\else% paper, article, or note
  \if@paper
    \cfoot{\footnotesize\scshape\thepage\ of \pageref{LastPage}
           \ifx\AA@papernumber\@empty\relax\else\\
           \rule[.2\baselineskip]{0.5in}{0.2pt}\\
           American Institute of Aeronautics
           and Astronautics Paper \AA@papernumber\fi}
  \else% article or note
    \if@article
      \chead{\footnotesize\scshape\MakeUppercase{\AA@articleheader}}
      \fancyhead[RO,LE]{\footnotesize\thepage}
      \fancypagestyle{plain}{%
        \fancyhf{}
        \lhead{\ifx\AA@journalname\@empty\relax\else
               \footnotesize{\scshape\AA@journalname}\\
               \AA@articleissue\fi}
        \cfoot{\footnotesize\thepage}}
    \else% note
      \chead[\footnotesize\scshape\AA@noteheader]%
            {\footnotesize\scshape\AA@noteheader}
      \rhead[]{\footnotesize \thepage}
      \lhead[\footnotesize \thepage]{}
    \fi
  \fi
\fi
%    \end{macrocode}
% \begin{macro}{\abstract}
% Redefine the |\abstract| command and load the date with nothing
%    \begin{macrocode}
\renewcommand{\abstract}[1]%
             {\def\@abstract{#1}}
\abstract{}
\let\@date\@empty
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\dropword}
% macro to drop first letter of word and capitalize the remaining
% portion, thanks to jeroen nijhof |<nijhof@th.rug.nl>|
%
% use:\\
% |  \dropword| word with rest of sentence or newline or whatever...
%    \begin{macrocode}
\if@submit%
  \def\dropword{}
\else
  \def\dropword#1#2 {\dropping{2}{\bfseries{} #1}\MakeUppercase{#2} }% spaces important!
\fi
%    \end{macrocode}
% \end{macro}
%
% increase penalty (x10) for consecutive lines ending in hyphens:
%    \begin{macrocode}
\doublehyphendemerits=100000
%    \end{macrocode}
% ignore small line overfull errors:
%    \begin{macrocode}
\setlength\hfuzz{3pt}% reduce the quantity of overfull warnings
%    \end{macrocode}
%
% \begin{macro}{\makecover}
% \begin{macro}{\Conference}
% The command |\makecover| is used  to make a cover for a
% AIAA conference paper or a simulated journal reprint.
% It is only active when the |submit| option is not in effect
% The |\makenotice| command is used to create the footnote
% containing copyright and other information about the document.
% The commands |\makecover| and |\makenotice| are internally
% called by the |\maketitle| command and are constructed
% similarly to the |\maketitle| command, in that |\makecover| uses
% information supplied by the commands described in the previous
% section, and |\makenotice| incorporates one of the appropriate
% |\_____Notice| commands.
%    \begin{macrocode}
\newcommand{\Conference}[1]{\def\AA@conference{#1}}
\Conference{}
\newcommand{\CoverFigure}[1]{\def\AA@coverfigure{#1}}
\CoverFigure{}
\if@submit%
  \newcommand{\makecover}{}
\else% paper, article, or note
  \newcommand{\makecover}{%
  \begin{titlepage}
  \let\AA@sfdefault\sfdefault% save normal fonts
  \let\AA@rmdefault\rmdefault
  \let\AA@ttdefault\ttdefault
  \renewcommand{\sfdefault}{phv}% change to new fonts
  \renewcommand{\rmdefault}{ptm}
  \renewcommand{\ttdefault}{pcr}
  \enlargethispage{1in}
  \setcounter{page}{0}
  \renewcommand\thanks[1]{}% locally kill the \thanks{} command
  \renewcommand\thanksibid[1]{}% kill the ibid version too
  \setlength{\unitlength}{1in}% unit of measure for the picture
  \begin{picture}(7.5,9)(0.45,0.495)%  start a 7-1/2'' x 9'' picture:
  \if@paper%
    \linethickness{4pt}
    \put(0,0){\framebox(7.45,8.95){}}% make a framed box accounting
                                     % for line thickness
    \linethickness{0.5pt}
    \renewcommand{\and}{\relax}
    \put(-0.07,8.7){\incfig[width=3in]{aiaalgo}}% aiaa logo at top left
    \put(1.2,8.0)% paper number, title, author/location
        {\makebox(0,0)[tl]{\parbox{5in}
            {\raggedright\sffamily\bfseries
          \Huge AIAA \AA@papernumber% paper number
          \\[5pt]
          \huge\@title%                title
          \\[5pt]
          \Large\mdseries\@author}}}%   author/location
    \ifx\AA@coverfigure\@empty% optional figure
      \relax
    \else
      \put(3.725,1.7){\makebox(0,0)[b]{%
          \includegraphics[width=5in,height=4in]%
          {\AA@coverfigure}}}%
    \fi
    \put(3.725,0.05){\makebox(0,0)[b]{\parbox{7.45in}%  meeting, location, and date
        {\centering\Huge\bfseries\sffamily%
        \AA@conference}}}
    \put(-0.055,-0.36){\parbox[t]{7.5in}% notice
      {\normalsize\sffamily\bfseries
      For permission to copy or republish, contact the
      American Institute of Aeronautics and Astronautics\\
      1801 Alexander Bell Drive, Suite 500, Reston, VA 20191--4344}}
  \else% article, or note
    \put(0.7,7.75)% title and authors
        {\makebox(0,0)[tl]{\parbox{6.5in}
         {\raggedright\sffamily\bfseries
          \huge\@title%
          \\[5pt]
          \Large\mdseries\@author}}}
    \ifx\AA@journalname\@empty\relax\else
      \put(0.7,1.9){\makebox(0,0)[tl]{\parbox{7.5in}%  journal/issue
        {\raggedright\bfseries\sffamily
         Simulated Reprint for\\
        \Huge%
        \AA@journalname\\
        \small\mdseries
	\ifx\AA@journalissue\@empty%
           \relax
        \else%
           \AA@journalissue,
        \fi
        Pages \theAA@journalpage--\pageref{LastPage}}}}\fi
    \put(0.5,0.45){\incfig[width=1in]{aiaalgo}}% aiaa logo at bottom left
    \put(0.7,0.3)% notice
        {\makebox(0,0)[tl]{\parbox{6.5in}
         {\sffamily
          \slshape A publication of the\\
          \upshape American Institute of Aeronautics and Astronautics, Inc.\\
         1801 Alexander Bell Drive, Suite 500\\
         Reston, VA 20191--4344}}}
  \fi
  \end{picture}
  \renewcommand\sfdefault{\AA@sfdefault}
  \renewcommand\rmdefault{\AA@rmdefault}
  \renewcommand\ttdefault{\AA@ttdefault}
  \end{titlepage}}
\fi
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\PaperNotice}
% \begin{macro}{\JournalNotice}
% \begin{macro}{\makenotice}
% the footnote notice maker
%    \begin{macrocode}
\newcommand{\PaperNotice}[1]{\def\AA@papernotice{\scriptsize #1}}
\PaperNotice{}
\newcommand{\JournalNotice}[1]{\def\AA@journalnotice{\scriptsize #1}}
\JournalNotice{}
\if@submit%
  \newcommand\makenotice{}%
\else% paper, article, or note
  \newcommand\makenotice{%
    \begingroup
    \renewcommand\thefootnote{}
      \if@paper%
        \ifx\AA@papernotice\@empty\else\footnotetext{\AA@papernotice}\fi
      \else% article or note
        \ifx\AA@journalnotice\@empty\else\footnotetext{\AA@journalnotice}\fi
      \fi%
    \endgroup
%   \renewcommand{\thefootnote}{\arabic{footnote}}%
  }
\fi
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \begin{macro}{\CopyrightA}
% \begin{macro}{\CopyrightB}
% \begin{macro}{\CopyrightC}
% \begin{macro}{\CopyrightD}
% load copyright commands
%    \begin{macrocode}
\newcommand{\CopyrightA}[1]{Copyright \copyright\ #1 by the
  American Institute of Aeronautics and Astronautics, Inc. All
  rights reserved.}
\newcommand{\CopyrightB}[2]{Copyright \copyright\ #1 by
  #2. Published by the American Institute of Aeronautics
  and Astronautics, Inc.\ with permission.}
\newcommand{\CopyrightC}{This paper is a work of the U.S.
  Government and is not subject to copyright protection in the
  United States.}
\newcommand{\CopyrightD}[1]{Copyright \copyright\ #1 by the
  American Institute of Aeronautics and Astronautics, Inc. No
  copyright is asserted in the United States under Title 17,
  U.S. Code.  The U.S. Government has a royalty-free license to
  exercise all rights under the copyright claimed herein for
  Governmental Purposes.  All other rights are reserved by the
  copyright owner.}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% modify float captions
%    \begin{macrocode}
\if@submit
  \renewcommand\figurename{Figure}
  \renewcommand\captionlabeldelim{:\hspace{1em}}
\else% paper, article, or note
  \renewcommand\figurename{Fig.}% change to the ugly, silly
                                % abbreviatation as per aiaa---saves
                                % all of two characters !?
  \renewcommand\captionlabeldelim{~~}
\fi
\renewcommand\captionfont{\small\bfseries}
\renewcommand\p@subfigure{\thefigure(}
\renewcommand\thesubfigure{\alph{subfigure})}
\renewcommand\subcaplabelfont{\captionfont}
\renewcommand{\subfigcapmargin}{2pt}
\if@submit
  \relax
\else
  \setlength{\abovecaptionskip}{ 6pt plus 2pt minus 2pt}
  \setlength{\belowcaptionskip}{ 3pt plus 1pt minus 1pt}% note good for tables!
  \renewcommand{\subfigcapskip}{.2\abovecaptionskip}%    seem to
  \renewcommand{\subfigbottomskip}{.7\belowcaptionskip}% have no effect?
\fi
%    \end{macrocode}
% modify float spacing or, if we're submitting something,
% the behavior of the |endfloat| package.
%    \begin{macrocode}
\if@submit% modify endfloat behaviour
  \InputIfFileExists{aiaaenf.cfg}{\typeout{loading aiaaenf.cfg}}%
                    {\typeout{WARNING: endfloat behavior will not
                              be as advertised since aiaaenf.cfg
                                                   was not found.}}
\else% modify float spacing
  \renewcommand{\topfraction}{0.9}
  \renewcommand{\bottomfraction}{0.9}
  \renewcommand{\textfraction}{0.1}
  \renewcommand{\floatpagefraction}{0.8}% 0.5 is the default
  \renewcommand{\dbltopfraction}{\floatpagefraction}
  \renewcommand{\dblfloatpagefraction}{\floatpagefraction}
  \setcounter{topnumber}{10}
  \setcounter{dbltopnumber}{\value{topnumber}}
  \setcounter{bottomnumber}{\value{topnumber}}
  \setcounter{totalnumber}{\value{topnumber}}
  \addtocounter{totalnumber}{\value{bottomnumber}}
  \setlength{\floatsep}        { 5pt plus 2pt minus 2pt}
  \setlength{\textfloatsep}    { 5pt plus 2pt minus 3pt}
  \setlength{\intextsep}       { 5pt plus 2pt minus 2pt}
  \setlength{\dblfloatsep}     {\floatsep}
  \setlength{\dbltextfloatsep} {\textfloatsep}
\fi
%    \end{macrocode}
% modifying bibliography output
%    \begin{macrocode}
\renewcommand{\@biblabel}[1]{$^{#1}$}
\renewenvironment{thebibliography}[1]%
     {\section*{\refname\@mkboth{\MakeUppercase\refname}%
                                 {\MakeUppercase\refname}}%
      \list{\@biblabel{\@arabic\c@enumiv}}%
           {\setlength{\leftmargin}{0pt}%
            \settowidth{\labelwidth}{\@biblabel{#1}}%
            \setlength{\itemindent}{\parindent}%
            \advance\itemindent by \labelwidth%
            \setlength{\labelsep}{0.0em}%
            \setlength{\itemsep}{-\smallskipamount}%
            \@openbib@code%
            \usecounter{enumiv}%
            \let\p@enumiv\@empty%
            \renewcommand\theenumiv{\@arabic\c@enumiv}%
            \if@submit%
              \normalsize%
            \else%
              \footnotesize%
            \fi}
      \sloppy\clubpenalty4000\widowpenalty4000%
      \sfcode`\.\@m}
      {\def\@noitemerr
        {\@latex@warning{Empty `thebibliography' environment}}%
      \endlist}
%    \end{macrocode}
%
%  \begin{macro}{\thanksibid}
%  Define a command that is used in conjunction with the
%  |\thanks| command.  It is used for the special case
%  where the argument of the |\thanks| for one author is
%  the same as another.\footnote{Hence, the use of the latin {\it ibid},
%  short for {\it ibidem}, meaning the same as.}
%    \begin{macrocode}
\newcounter{ibid}
\newcounter{tempcnt}
\newcommand{\thanksibid}[1]{%
    \begingroup
    \setcounter{tempcnt}{\value{footnote}}%
    \setcounter{ibid}{#1}%
    \def\thefootnote{\fnsymbol{ibid}}%
    \footnotemark%
    \setcounter{footnote}{\value{tempcnt}}%
    \endgroup
}
%    \end{macrocode}
% \end{macro}
%
%  \begin{macro}{\incfig}
%  define command that picks-up the current line width
%  for automatic figure sizing
%    \begin{macrocode}
\newcommand{\incfig}{\centering\includegraphics}
\setkeys{Gin}{width=\linewidth,keepaspectratio}
\if@submit%
   \setkeys{Gin}{totalheight=0.35\textheight}
\else% paper, article, or note
   \relax
\fi
%    \end{macrocode}
% \end{macro}
%
%  \begin{environment}{subfigmatrix}
%  Define command that makes subfigure `tables'.
%
%    \begin{macrocode}
% 27 Feb 1997  Steven Douglas Cochran - Created.
% 28 Feb 1997  Bil Kleb - modified to not use minipages
% Define and initialize the internal variables.
%
\newlength{\sfm@width}%               Subfigure width
\newlength{\sfm@colsep}%              Subfigure column separation
\setlength{\sfm@colsep}{2\tabcolsep}% Use twice tabular column separation
\newcounter{sfm@count}%               Item count
\newenvironment{subfigmatrix}[1]{%
  \begingroup%
  \centering%
  \vspace*{-\subfigtopskip}% remove the vertical spacing inserted
                           % by the subfigure package
    % 
    % Save the "real" subfigure macro and start the item counter off
    % at -1 to detect the first item.
    % Set the \sfm@width to the single element size.
    % 
    \let\sfm@subfigure\subfigure%
    \setcounter{sfm@count}{-1}%
    \setlength{\sfm@width}{\linewidth}%
    \addtolength{\sfm@width}{\sfm@colsep}%
    \addtolength{\sfm@width}{-#1\sfm@colsep}%
    \divide\sfm@width by#1
    \setkeys{Gin}{width=\sfm@width,keepaspectratio}%
    % 
    % Redefine the \subfigure and \subtable macros locally to this
    % environment so that we can wrap them with minipages.
    % 
    \def\subfigure{% try the transpose
      \ifnum \value{sfm@count} = -1
      % very first item
        \setcounter{sfm@count}{1}%
      \else% Not very first item
        \addtocounter{sfm@count}{1}%
        \ifnum \value{sfm@count} = 1
          % Beginning of next column, finish the last column.
          \\%
        \else%
          % middle or last item
          \hfill%
          \ifnum #1 = \value{sfm@count}%
            % Reset the counter of at the end of the row.
            \setcounter{sfm@count}{0}%
          \fi%
        \fi%
      \fi%
      \sfm@subfigure}%
    \let\subtable\subfigure%
  }{%
    \\%
  \endgroup}%
%    \end{macrocode}
% \end{environment}
%
%  \begin{macro}{\maketitle}
%  change maketitle behavior to preserve twocolumn mode for
%  journal note, to create a cover page if appropriate, and make
%  the copyright-style notices about the document.
%    \begin{macrocode}
\if@paper
  \renewcommand{\and}{\\[-.9\baselineskip]}
\else
  \renewcommand{\and}{\\*[-8pt]}
\fi
\renewcommand{\maketitle}{%
  \if@cover
    \makecover
  \else
    \relax
  \fi
  \par
  \begingroup
    \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
    \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
    \long\def\@makefntext##1{\parindent 1em\noindent
            \hb@xt@1.8em{%
                \hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
  \global\@topnum\z@   % Prevents figures from going at top of page.
  \if@submit%
    \@maketitle%
  \else% paper, article, or note
    \if@note%
      \@maketitle%
    \else% paper article -- should already be in twocolumn mode
      \ifnum \col@number=\@ne% if in column one, good:
         \@maketitle
      \else% not in column one, so start new page:
        \twocolumn[\@maketitle]
      \fi
      \if@article%
        \thispagestyle{plain}
      \fi
    \fi
  \fi
  \@thanks
  \endgroup
  \suppressfloats
  \setcounter{footnote}{0}%
  \if@submit% submission
    \relax
  \else% paper, article, or note:
    \if@paper
      \relax
    \else% article or note:
       \setcounter{page}{\theAA@journalpage}
    \fi
  \fi
  \makenotice
  \global\let\maketitle\relax
  \global\let\@maketitle\relax
  \global\let\@abstract\@empty
  \global\let\@thanks\@empty
  \global\let\thanks\relax
  \global\let\@author\@empty
  \global\let\author\relax
  \global\let\@title\@empty
  \global\let\title\relax
  \global\let\@date\@empty
  \global\let\abstract\relax
  \global\let\date\relax
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\@maketitle}
% modify the fonts used for the title, etc
%    \begin{macrocode}
\def\@maketitle{%
  \newpage
  \begin{center}%
  \let \footnote \thanks
    {\huge\bf \@title \par}%
    \vskip 1.5em%
    {\lineskip .5em%
      \large%
      \begin{tabular}[t]{c}%
        \@author
      \end{tabular}\par}%
    \vskip 1em%
    \if@submit
      \relax
    \else% paper, article, or note
      \if@note
        \relax
      \else% paper or article
        \newenvironment{AA@abstract}
        {\list{}{\listparindent 1.5em%
                \itemindent \listparindent
                \leftmargin 0.75in%
                \rightmargin \leftmargin
                \parsep \z@ \@plus \p@}%
                \item\relax}
         {\endlist}
         \ifx\@abstract\@empty
           \relax
         \else
           \begin{AA@abstract}
              \footnotesize\textbf\@abstract
           \end{AA@abstract}
         \fi
      \fi
    \fi
  \end{center}%
  \if@submit%
    \ifx\@abstract\@empty
      \relax
    \else%
      \section{Abstract} \@abstract%
    \fi
  \else% paper, article, or note
    \par%
    \if@note%
      \vskip -\medskipamount%
    \else%
      \vskip 1em%
    \fi%
  \fi%
}
%    \end{macrocode}
% \end{macro}
% modify the section headers
%    \begin{macrocode}
\setcounter{secnumdepth}{-2}% instead of having to use the *'d
                            % section commands
%    \end{macrocode}
% \begin{macro}{\section}
%    \begin{macrocode}
\renewcommand\section{\@startsection
  {section}%                    % section name
  {1}%                          % level
  {\z@}%                        % indentation of heading
  {1.8ex}%                      % before skip (neg, no parindent)
  {0.5ex}%                      % after skip (neg, run-on heading space)
  {\normalfont\center\large\bfseries}}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\subsection}
%    \begin{macrocode}
\renewcommand\subsection{\@startsection{subsection}{2}%
  {\z@}%
  {1.5ex}%
  {0.5ex}%
  {\normalfont\small\bfseries\raggedright}}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\subsubsection}
%    \begin{macrocode}
\renewcommand\subsubsection{\@startsection{subsubsection}{3}%
  {\z@}%
  {1.5ex}%
  {0.5ex}%
  {\normalfont\normalsize\itshape\raggedright}}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\paragraph}
%    \begin{macrocode}
\renewcommand\paragraph{\@startsection{paragraph}{4}%
  {\parindent}%
  {0.3ex}%
  {-1em}%
  {\normalfont\normalsize\sffamily}}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\subparagraph}
%    \begin{macrocode}
\renewcommand\subparagraph{\@startsection{subparagraph}{5}%
  {\parindent}%
  {0.3ex}%
  {-1em}%
  {\normalfont\normalsize\itshape}}
%    \end{macrocode}
% \end{macro}
% list files used during job:
%    \begin{macrocode}
\listfiles
%
%</class>
%
%    \end{macrocode}
%
% This brings us to the end of \cls{aiaa.cls}.
%
% \subsection{The 9pt style file}
% 
% This is the package \pkg{aiaa9pt.sty}, it provides 9pt font settings
% for simulation of journal articles/notes.  It is essentially
% a hack of size10.clo (a the standard \LaTeX{} class option).
%
%    \begin{macrocode}
%
%<*style>
%
\ProvidesFile{aiaa9pt.sty}
              [1999/02/22 v2.4 AIAA style file (9pt option)]
\renewcommand\normalsize{%
   \@setfontsize\normalsize\@ixpt\@xipt
   \abovedisplayskip 9\p@ \@plus2\p@ \@minus4\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
   \belowdisplayskip \abovedisplayskip
   \let\@listi\@listI}
\normalsize
\renewcommand\small{%
   \@setfontsize\small\@viiipt\@xpt%
   \abovedisplayskip 7\p@ \@plus2\p@ \@minus3\p@
   \abovedisplayshortskip \z@ \@plus2\p@
   \belowdisplayshortskip 3\p@ \@plus2\p@ \@minus2\p@
   \def\@listi{\leftmargin\leftmargini
               \topsep 3\p@ \@plus2\p@ \@minus2\p@
               \parsep \p@ \@plus\p@ \@minus\p@
               \itemsep \parsep}%
   \belowdisplayskip \abovedisplayskip
}
\renewcommand\footnotesize{%
   \@setfontsize\footnotesize\@viipt{8.3}%
   \abovedisplayskip 4\p@ \@plus2\p@ \@minus3\p@
   \abovedisplayshortskip \z@ \@plus\p@
   \belowdisplayshortskip 2\p@ \@plus\p@ \@minus\p@
   \def\@listi{\leftmargin\leftmargini
               \topsep 2\p@ \@plus\p@ \@minus\p@
               \parsep 2\p@ \@plus\p@ \@minus\p@
               \itemsep \parsep}%
   \belowdisplayskip \abovedisplayskip
}
\renewcommand\scriptsize{\@setfontsize\scriptsize\@vipt\@viipt}
\renewcommand\tiny{\@setfontsize\tiny\@vpt\@vpt}
\renewcommand\large{\@setfontsize\large\@xipt{13.6}}
\renewcommand\Large{\@setfontsize\Large\@xivpt{18}}
\renewcommand\LARGE{\@setfontsize\LARGE\@xviipt{22}}
\renewcommand\huge{\@setfontsize\huge\@xxpt{25}}
\renewcommand\Huge{\@setfontsize\Huge\@xxvpt{30}}
\if@twocolumn
  \setlength\parindent{1em}
\else
  \setlength\parindent{13\p@}
\fi
\setlength\smallskipamount{3\p@ \@plus 1\p@ \@minus 1\p@}
\setlength\medskipamount{6\p@ \@plus 2\p@ \@minus 2\p@}
\setlength\bigskipamount{12\p@ \@plus 4\p@ \@minus 4\p@}
\setlength\headheight{12\p@}
\setlength\headsep   {25\p@}
\setlength\topskip   {9\p@}
\setlength\footskip{30\p@}
\setlength\maxdepth{.5\topskip}
  \setlength\@tempdima{\paperwidth}
  \addtolength\@tempdima{-2in}
  \setlength\@tempdimb{345\p@}
  \if@twocolumn
    \ifdim\@tempdima>2\@tempdimb\relax
      \setlength\textwidth{2\@tempdimb}
    \else
      \setlength\textwidth{\@tempdima}
    \fi
  \else
    \ifdim\@tempdima>\@tempdimb\relax
      \setlength\textwidth{\@tempdimb}
    \else
      \setlength\textwidth{\@tempdima}
    \fi
  \fi
  \@settopoint\textwidth
  \setlength\@tempdima{\paperheight}
  \addtolength\@tempdima{-2in}
  \addtolength\@tempdima{-1.5in}
  \divide\@tempdima\baselineskip
  \@tempcnta=\@tempdima
  \setlength\textheight{\@tempcnta\baselineskip}
\addtolength\textheight{\topskip}
\if@twocolumn
 \setlength\marginparsep {10\p@}
\else
  \setlength\marginparsep{11\p@}
\fi
\setlength\marginparpush{5\p@}
  \if@twoside
    \setlength\@tempdima        {\paperwidth}
    \addtolength\@tempdima      {-\textwidth}
    \setlength\oddsidemargin    {.4\@tempdima}
    \addtolength\oddsidemargin  {-1in}
    \setlength\marginparwidth   {.6\@tempdima}
    \addtolength\marginparwidth {-\marginparsep}
    \addtolength\marginparwidth {-0.4in}
  \else
    \setlength\@tempdima        {\paperwidth}
    \addtolength\@tempdima      {-\textwidth}
    \setlength\oddsidemargin    {.5\@tempdima}
    \addtolength\oddsidemargin  {-1in}
    \setlength\marginparwidth   {.5\@tempdima}
    \addtolength\marginparwidth {-\marginparsep}
    \addtolength\marginparwidth {-0.4in}
    \addtolength\marginparwidth {-.4in}
  \fi
  \ifdim \marginparwidth >2in
     \setlength\marginparwidth{2in}
  \fi
  \@settopoint\oddsidemargin
  \@settopoint\marginparwidth
  \setlength\evensidemargin  {\paperwidth}
  \addtolength\evensidemargin{-2in}
  \addtolength\evensidemargin{-\textwidth}
  \addtolength\evensidemargin{-\oddsidemargin}
  \@settopoint\evensidemargin
  \setlength\topmargin{\paperheight}
  \addtolength\topmargin{-2in}
  \addtolength\topmargin{-\headheight}
  \addtolength\topmargin{-\headsep}
  \addtolength\topmargin{-\textheight}
  \addtolength\topmargin{-\footskip}     % this might be wrong!
  \addtolength\topmargin{-.5\topmargin}
  \@settopoint\topmargin
\setlength\footnotesep{5.755\p@}
\setlength{\skip\footins}{9.5\p@ \@plus 4\p@ \@minus 2\p@}
\setlength\floatsep    {12\p@ \@plus 2\p@ \@minus 2\p@}
\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
\setlength\intextsep   {12\p@ \@plus 2\p@ \@minus 2\p@}
\setlength\dblfloatsep    {12\p@ \@plus 2\p@ \@minus 2\p@}
\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
\setlength\@fptop{0\p@ \@plus 1fil}
\setlength\@fpsep{8\p@ \@plus 2fil}
\setlength\@fpbot{0\p@ \@plus 1fil}
\setlength\@dblfptop{0\p@ \@plus 1fil}
\setlength\@dblfpsep{8\p@ \@plus 2fil}
\setlength\@dblfpbot{0\p@ \@plus 1fil}
\setlength\partopsep{2\p@ \@plus 1\p@ \@minus 1\p@}
\def\@listi{\leftmargin\leftmargini
            \parsep 4\p@ \@plus2\p@ \@minus\p@
            \topsep 8\p@ \@plus2\p@ \@minus4\p@
            \itemsep4\p@ \@plus2\p@ \@minus\p@}
\let\@listI\@listi
\@listi
\def\@listii {\leftmargin\leftmarginii
              \labelwidth\leftmarginii
              \advance\labelwidth-\labelsep
              \topsep    4\p@ \@plus2\p@ \@minus\p@
              \parsep    2\p@ \@plus\p@  \@minus\p@
              \itemsep   \parsep}
\def\@listiii{\leftmargin\leftmarginiii
              \labelwidth\leftmarginiii
              \advance\labelwidth-\labelsep
              \topsep    2\p@ \@plus\p@\@minus\p@
              \parsep    \z@
              \partopsep \p@ \@plus\z@ \@minus\p@
              \itemsep   \topsep}
\def\@listiv {\leftmargin\leftmarginiv
              \labelwidth\leftmarginiv
              \advance\labelwidth-\labelsep}
\def\@listv  {\leftmargin\leftmarginv
              \labelwidth\leftmarginv
              \advance\labelwidth-\labelsep}
\def\@listvi {\leftmargin\leftmarginvi
              \labelwidth\leftmarginvi
              \advance\labelwidth-\labelsep}
%</style>
%
%    \end{macrocode}
%
% This brings us to the end of \pkg{aiaa9pt.sty}.
%
% \subsection{AIAA Bibliographic Style File}
%
%    \begin{macrocode}
%
%<*bibstyle>
%
% note: this file generated by p. daly's custom-bib software
%
ENTRY
  { address
    author
    booktitle
    chapter
    edition
    editor
    howpublished
    institution
    journal
    key
    month
    note
    number
    organization
    pages
    publisher
    school
    series
    title
    type
    volume
    year
  }
  {}
  { label }

INTEGERS { output.state before.all mid.sentence after.sentence after.block }

FUNCTION {init.state.consts}
{ #0 'before.all :=
  #1 'mid.sentence :=
  #2 'after.sentence :=
  #3 'after.block :=
}

STRINGS { s t }

FUNCTION {output.nonnull}
{ 's :=
  output.state mid.sentence =
    { ", " * write$ }
    { output.state after.block =
        { add.period$ write$
          newline$
          "\newblock " write$
        }
        { output.state before.all =
            'write$
            { add.period$ " " * write$ }
          if$
        }
      if$
      mid.sentence 'output.state :=
    }
  if$
  s
}

FUNCTION {output}
{ duplicate$ empty$
    'pop$
    'output.nonnull
  if$
}

FUNCTION {output.check}
{ 't :=
  duplicate$ empty$
    { pop$ "empty " t * " in " * cite$ * warning$ }
    'output.nonnull
  if$
}

FUNCTION {fin.entry}
{ add.period$
  write$
  newline$
}

FUNCTION {new.block}
{ output.state before.all =
    'skip$
    { after.block 'output.state := }
  if$
}

FUNCTION {new.sentence}
{ output.state after.block =
    'skip$
    { output.state before.all =
        'skip$
        { after.sentence 'output.state := }
      if$
    }
  if$
}

FUNCTION {add.blank}
{  " " * before.all 'output.state :=
}

FUNCTION {date.block}
{
  skip$
}

FUNCTION {not}
{   { #0 }
    { #1 }
  if$
}

FUNCTION {and}
{   'skip$
    { pop$ #0 }
  if$
}

FUNCTION {or}
{   { pop$ #1 }
    'skip$
  if$
}

FUNCTION {non.stop}
{ duplicate$
   "}" * add.period$
   #-1 #1 substring$ "." =
}

FUNCTION {new.block.checka}
{ empty$
    'skip$
    'new.block
  if$
}

FUNCTION {new.block.checkb}
{ empty$
  swap$ empty$
  and
    'skip$
    'new.block
  if$
}

FUNCTION {new.sentence.checka}
{ empty$
    'skip$
    'new.sentence
  if$
}

FUNCTION {new.sentence.checkb}
{ empty$
  swap$ empty$
  and
    'skip$
    'new.sentence
  if$
}

FUNCTION {field.or.null}
{ duplicate$ empty$
    { pop$ "" }
    'skip$
  if$
}

FUNCTION {emphasize}
{ duplicate$ empty$
    { pop$ "" }
    { "{\em " swap$ * "\/}" * }
  if$
}

FUNCTION {capitalize}
{ "u" change.case$ "t" change.case$ }

FUNCTION {space.word}
{ " " swap$ * " " * }

 % Here are the language-specific definitions for explicit words.
 % Each function has a name bbl.xxx where xxx is the English word.
 % The language selected here is ENGLISH
FUNCTION {bbl.and}
{ "and"}

FUNCTION {bbl.editors}
{ "editors" }

FUNCTION {bbl.editor}
{ "editor" }

FUNCTION {bbl.edby}
{ "edited by" }

FUNCTION {bbl.edition}
{ "ed." }

FUNCTION {bbl.volume}
{ "Vol." }

FUNCTION {bbl.of}
{ "of" }

FUNCTION {bbl.number}
{ "No." }

FUNCTION {bbl.nr}
{ "No." }

FUNCTION {bbl.in}
{ "in" }

FUNCTION {bbl.pages}
{ "pp." }

FUNCTION {bbl.page}
{ "p." }

FUNCTION {bbl.chapter}
{ "chap." }

FUNCTION {bbl.techrep}
{ "Tech. Rep." }

FUNCTION {bbl.mthesis}
{ "Master's thesis" }

FUNCTION {bbl.phdthesis}
{ "Ph.D. thesis" }

FUNCTION {bbl.first}
{ "1st" }

FUNCTION {bbl.second}
{ "2nd" }

FUNCTION {bbl.third}
{ "3rd" }

FUNCTION {bbl.fourth}
{ "4th" }

FUNCTION {bbl.fifth}
{ "5th" }

FUNCTION {bbl.st}
{ "st" }

FUNCTION {bbl.nd}
{ "nd" }

FUNCTION {bbl.rd}
{ "rd" }

FUNCTION {bbl.th}
{ "th" }

MACRO {jan} {"Jan."}

MACRO {feb} {"Feb."}

MACRO {mar} {"March"}

MACRO {apr} {"April"}

MACRO {may} {"May"}

MACRO {jun} {"June"}

MACRO {jul} {"July"}

MACRO {aug} {"Aug."}

MACRO {sep} {"Sept."}

MACRO {oct} {"Oct."}

MACRO {nov} {"Nov."}

MACRO {dec} {"Dec."}

MACRO {jan-feb} {"Jan.-Feb."}

MACRO {mar-apr} {"Mar.-Apr."}

MACRO {may-jun} {"May-Jun."}

MACRO {jul-aug} {"Jul.-Aug."}

MACRO {sep-oct} {"Sep.-Oct."}

MACRO {nov-dec} {"Nov.-Dec."}

FUNCTION {eng.ord}
{ duplicate$ "1" swap$ *
  #-2 #1 substring$ "1" =
     { bbl.th * }
     { duplicate$ #-1 #1 substring$
       duplicate$ "1" =
         { pop$ bbl.st * }
         { duplicate$ "2" =
             { pop$ bbl.nd * }
             { "3" =
                 { bbl.rd * }
                 { bbl.th * }
               if$
             }
           if$
          }
       if$
     }
   if$
}

MACRO {jsr} {"Journal of Spacecraft and Rockets"}

MACRO {aa} {"Aerospace America"}

MACRO {sn} {"Space News"}

MACRO {awst} {"Aviation Week \& Space Technology"}

MACRO {jcp} {"Journal of Computational Physics"}

MACRO {ijcfd} {"International Journal of Computational Fluid Dynamics"}

MACRO {ijnme} {"International Journal for Numerical Methods in Engineering"}

MACRO {acmcs} {"ACM Computing Surveys"}

MACRO {acta} {"Acta Informatica"}

MACRO {cacm} {"Communications of the ACM"}

MACRO {ibmjrd} {"IBM Journal of Research and Development"}

MACRO {ibmsj} {"IBM Systems Journal"}

MACRO {ieeese} {"IEEE Transactions on Software Engineering"}

MACRO {ieeetc} {"IEEE Transactions on Computers"}

MACRO {ieeetcad}
 {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}

MACRO {ipl} {"Information Processing Letters"}

MACRO {jacm} {"Journal of the ACM"}

MACRO {jcss} {"Journal of Computer and System Sciences"}

MACRO {scp} {"Science of Computer Programming"}

MACRO {sicomp} {"SIAM Journal on Computing"}

MACRO {tocs} {"ACM Transactions on Computer Systems"}

MACRO {tods} {"ACM Transactions on Database Systems"}

MACRO {tog} {"ACM Transactions on Graphics"}

MACRO {toms} {"ACM Transactions on Mathematical Software"}

MACRO {toois} {"ACM Transactions on Office Information Systems"}

MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}

MACRO {tcs} {"Theoretical Computer Science"}

INTEGERS { nameptr namesleft numnames }

FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr
      "{vv~}{ll}{, jj}{, f.}" format.name$ 't :=
      nameptr #1 >
        {
          namesleft #1 >
            { ", " * t * }
            {
              numnames #2 >
                { "," * }
                'skip$
              if$
              t "others" =
                { " et~al." * }
                { bbl.and space.word * t * }
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

FUNCTION {format.names.ed}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr
      "{f.~}{vv~}{ll}{, jj}"
      format.name$ 't :=
      nameptr #1 >
        {
          namesleft #1 >
            { ", " * t * }
            {
              numnames #2 >
                { "," * }
                'skip$
              if$
              t "others" =
                { " et~al." * }
                { bbl.and space.word * t * }
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

FUNCTION {format.authors}
{ author empty$
    { "" }
    {
      author format.names
    }
  if$
}

FUNCTION {format.editors}
{ editor empty$
    { "" }
    {
      editor format.names
      editor num.names$ #1 >
        { ", " * bbl.editors * }
        { ", " * bbl.editor * }
      if$
    }
  if$
}

FUNCTION {format.in.editors}
{ editor empty$
    { "" }
    { editor format.names.ed
    }
  if$
}

FUNCTION {format.title}
{ title empty$
    { "" }
    { title
      "\enquote{" swap$ *
      non.stop
        { ",} " * }
        { "} " * }
      if$
    }
  if$
}

FUNCTION {end.quote.title}
{ title empty$
    'skip$
    { before.all 'output.state := }
  if$
}

FUNCTION {output.bibitem}
{ newline$
  "\bibitem{" write$
  cite$ write$
  "}" write$
  newline$
  ""
  before.all 'output.state :=
}

FUNCTION {n.dashify}
{ 't :=
  ""
    { t empty$ not }
    { t #1 #1 substring$ "-" =
        { t #1 #2 substring$ "--" = not
            { "--" *
              t #2 global.max$ substring$ 't :=
            }
            {   { t #1 #1 substring$ "-" = }
                { "-" *
                  t #2 global.max$ substring$ 't :=
                }
              while$
            }
          if$
        }
        { t #1 #1 substring$ *
          t #2 global.max$ substring$ 't :=
        }
      if$
    }
  while$
}

FUNCTION {word.in}
{ "" }

FUNCTION {format.date}
{ year empty$
    { month empty$
        { "" }
        { "there's a month but no year in " cite$ * warning$
          month
        }
      if$
    }
    { month empty$
        'year
        { month " " * year * }
      if$
    }
  if$
}

FUNCTION {format.btitle}
{ title emphasize
}

FUNCTION {tie.or.space.connect}
{ duplicate$ text.length$ #3 <
    { "~" }
    { " " }
  if$
  swap$ * *
}

FUNCTION {either.or.check}
{ empty$
    'pop$
    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  if$
}

FUNCTION {format.bvolume}
{ volume empty$
    { "" }
    { bbl.volume volume tie.or.space.connect
      series empty$
        'skip$
        { bbl.of space.word * series emphasize * }
      if$
      "volume and number" number either.or.check
    }
  if$
}

FUNCTION {format.number.series}
{ volume empty$
    { number empty$
        { series field.or.null }
        { output.state mid.sentence =
            { bbl.number }
            { bbl.number capitalize }
          if$
          number tie.or.space.connect
          series empty$
            { "there's a number but no series in " cite$ * warning$ }
            { bbl.in space.word * series * }
          if$
        }
      if$
    }
    { "" }
  if$
}

FUNCTION {is.num}
{ chr.to.int$
  duplicate$ "0" chr.to.int$ < not
  swap$ "9" chr.to.int$ > not and
}

FUNCTION {extract.num}
{ duplicate$ 't :=
  "" 's :=
  { t empty$ not }
  { t #1 #1 substring$
    t #2 global.max$ substring$ 't :=
    duplicate$ is.num
      { s swap$ * 's := }
      { pop$ "" 't := }
    if$
  }
  while$
  s empty$
    'skip$
    { pop$ s }
  if$
}

FUNCTION {convert.edition}
{ edition extract.num "l" change.case$ 's :=
  s "first" = s "1" = or
    { bbl.first 't := }
    { s "second" = s "2" = or
        { bbl.second 't := }
        { s "third" = s "3" = or
            { bbl.third 't := }
            { s "fourth" = s "4" = or
                { bbl.fourth 't := }
                { s "fifth" = s "5" = or
                    { bbl.fifth 't := }
                    { s #1 #1 substring$ is.num
                        { s eng.ord 't := }
                        { edition 't := }
                      if$
                    }
                  if$
                }
              if$
            }
          if$
        }
      if$
    }
  if$
  t
}

FUNCTION {format.edition}
{ edition empty$
    { "" }
    { output.state mid.sentence =
        { convert.edition "l" change.case$ " " * bbl.edition * }
        { convert.edition "t" change.case$ " " * bbl.edition * }
      if$
    }
  if$
}

INTEGERS { multiresult }

FUNCTION {multi.page.check}
{ 't :=
  #0 'multiresult :=
    { multiresult not
      t empty$ not
      and
    }
    { t #1 #1 substring$
      duplicate$ "-" =
      swap$ duplicate$ "," =
      swap$ "+" =
      or or
        { #1 'multiresult := }
        { t #2 global.max$ substring$ 't := }
      if$
    }
  while$
  multiresult
}

FUNCTION {format.pages}
{ pages empty$
    { "" }
    { pages multi.page.check
        { bbl.pages pages n.dashify tie.or.space.connect }
        { bbl.page pages tie.or.space.connect }
      if$
    }
  if$
}

FUNCTION {format.journal.pages}
{
  pages empty$
    'skip$
    { duplicate$ empty$
        { pop$ format.pages }
        { ", " * bbl.pages "~" * * pages n.dashify * }
      if$
    }
  if$
}

FUNCTION {format.vol.num.pages}
{ volume field.or.null
  volume empty$
    'skip$
    { bbl.volume "~" * swap$ * }
  if$
  number empty$
    'skip$
    {
      ", " bbl.nr * number tie.or.space.connect *
      volume empty$
        { "there's a number but no volume in " cite$ * warning$ }
        'skip$
      if$
    }
  if$
}

FUNCTION {format.chapter.pages}
{ chapter empty$
    { "" }
    { type empty$
        { bbl.chapter }
        { type "l" change.case$ }
      if$
      chapter tie.or.space.connect
    }
  if$
}

FUNCTION {format.in.ed.booktitle}
{ booktitle empty$
    { "" }
    { editor empty$
        { word.in booktitle emphasize * }
        { word.in booktitle emphasize *
          ", " *
          bbl.edby
          *
          " " *
          format.in.editors *
        }
      if$
    }
  if$
}

FUNCTION {empty.misc.check}
{ author empty$ title empty$ howpublished empty$
  month empty$ year empty$ note empty$
  and and and and and
    { "all relevant fields are empty in " cite$ * warning$ }
    'skip$
  if$
}

FUNCTION {format.thesis.type}
{ type empty$
    'skip$
    { pop$
      type "t" change.case$
    }
  if$
}

FUNCTION {format.tr.number}
{ type empty$
    { bbl.techrep }
    'type
  if$
  number empty$
    { "t" change.case$ }
    { number tie.or.space.connect }
  if$
}

FUNCTION {format.article.crossref}
{
  key empty$
    { journal empty$
        { "need key or journal for " cite$ * " to crossref " * crossref *
          warning$
          ""
        }
        { word.in journal emphasize * }
      if$
    }
    { word.in key * " " *}
  if$
  " \cite{" * crossref * "}" *
}

FUNCTION {format.crossref.editor}
{ editor #1 "{vv~}{ll}" format.name$
  editor num.names$ duplicate$
  #2 >
    { pop$ " et~al." * }
    { #2 <
        'skip$
        { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
            { " et~al." * }
            { bbl.and space.word * editor #2 "{vv~}{ll}" format.name$ * }
          if$
        }
      if$
    }
  if$
}

FUNCTION {format.book.crossref}
{ volume empty$
    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
      word.in
    }
    { bbl.volume volume tie.or.space.connect
      bbl.of space.word *
    }
  if$
  editor empty$
  editor field.or.null author field.or.null =
  or
    { key empty$
        { series empty$
            { "need editor, key, or series for " cite$ * " to crossref " *
              crossref * warning$
              "" *
            }
            { series emphasize * }
          if$
        }
        { key * }
      if$
    }
    { format.crossref.editor * }
  if$
  " \cite{" * crossref * "}" *
}

FUNCTION {format.incoll.inproc.crossref}
{
  editor empty$
  editor field.or.null author field.or.null =
  or
    { key empty$
        { booktitle empty$
            { "need editor, key, or booktitle for " cite$ * " to crossref " *
              crossref * warning$
              ""
            }
            { word.in booktitle emphasize * }
          if$
        }
        { word.in key * " " *}
      if$
    }
    { word.in format.crossref.editor * " " *}
  if$
  " \cite{" * crossref * "}" *
}

FUNCTION {format.publisher}
{ publisher empty$
    { "empty publisher in " cite$ * warning$ }
    'skip$
  if$
  ""
  address empty$ publisher empty$ and
    'skip$
    {
      publisher empty$
        { address empty$
          'skip$
          { address * }
          if$
        }
        { publisher *
          address empty$
            'skip$
            { ", " * address * }
          if$
        }
      if$
    }
  if$
  output
}

FUNCTION {article}
{ output.bibitem
  format.authors "author" output.check
  format.title "title" output.check
  end.quote.title
  crossref missing$
    { journal
      emphasize
      "journal" output.check
      format.vol.num.pages output
      format.date "year" output.check
    }
    { format.article.crossref output.nonnull
      format.pages output
    }
  if$
  format.journal.pages
  note output
  fin.entry
}

FUNCTION {book}
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check
    }
    { format.authors output.nonnull
      crossref missing$
        { "author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  format.btitle "title" output.check
  crossref missing$
    { format.bvolume output
      format.number.series output
      format.publisher
    }
    {
      format.book.crossref output.nonnull
    }
  if$
  format.edition output
  format.date "year" output.check
  note output
  fin.entry
}

FUNCTION {booklet}
{ output.bibitem
  format.authors output
  format.title "title" output.check
  end.quote.title
  howpublished output
  address output
  format.date output
  note output
  fin.entry
}

FUNCTION {inbook}
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check
    }
    { format.authors output.nonnull
      crossref missing$
        { "author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  format.btitle "title" output.check
  crossref missing$
    {
      format.bvolume output
      format.chapter.pages "chapter and pages" output.check
      format.number.series output
      format.publisher
    }
    {
      format.chapter.pages "chapter and pages" output.check
      format.book.crossref output.nonnull
    }
  if$
  format.edition output
  format.date "year" output.check
  format.pages "pages" output.check
  note output
  fin.entry
}

FUNCTION {incollection}
{ output.bibitem
  format.authors "author" output.check
  format.title "title" output.check
  end.quote.title
  crossref missing$
    { format.in.ed.booktitle "booktitle" output.check
      format.bvolume output
      format.number.series output
      format.chapter.pages output
      format.publisher
      format.edition output
      format.date "year" output.check
    }
    { format.incoll.inproc.crossref output.nonnull
      format.chapter.pages output
    }
  if$
  format.pages "pages" output.check
  note output
  fin.entry
}

FUNCTION {inproceedings}
{ output.bibitem
  format.authors "author" output.check
  format.title "title" output.check
  end.quote.title
  crossref missing$
    { format.in.ed.booktitle "booktitle" output.check
      format.bvolume output
      format.number.series output
      publisher empty$
        { organization output
          address output
        }
        { organization output
          format.publisher
        }
      if$
      format.date "year" output.check
    }
    { format.incoll.inproc.crossref output.nonnull
      format.pages output
    }
  if$
  format.pages "pages" output.check
  note output
  fin.entry
}

FUNCTION {conference} { inproceedings }

FUNCTION {manual}
{ output.bibitem
  author empty$
    { organization empty$
        'skip$
        { organization output.nonnull
          address output
        }
      if$
    }
    { format.authors output.nonnull }
  if$
  format.btitle "title" output.check
  author empty$
    { organization empty$
    {
          address output
        }
        'skip$
      if$
    }
    {
      organization output
      address output
    }
  if$
  format.edition output
  format.date output
  note output
  fin.entry
}

FUNCTION {mastersthesis}
{ output.bibitem
  format.authors "author" output.check
  format.btitle "title" output.check
  bbl.mthesis format.thesis.type output.nonnull
  school "school" output.check
  address output
  format.date "year" output.check
  note output
  fin.entry
}

FUNCTION {misc}
{ output.bibitem
  format.authors output
  format.title output
  end.quote.title
  howpublished output
  format.date output
  note output
  fin.entry
  empty.misc.check
}

FUNCTION {phdthesis}
{ output.bibitem
  format.authors "author" output.check
  format.btitle "title" output.check
  bbl.phdthesis format.thesis.type output.nonnull
  school "school" output.check
  address output
  format.date "year" output.check
  note output
  fin.entry
}

FUNCTION {proceedings}
{ output.bibitem
  editor empty$
    { organization output }
    { format.editors output.nonnull }
  if$
  format.btitle "title" output.check
  format.bvolume output
  format.number.series output
  address empty$
    { editor empty$
        { publisher new.sentence.checka }
        { organization publisher new.sentence.checkb
          organization output
        }
      if$
      publisher output
      format.date "year" output.check
    }
    { address output.nonnull
      format.date "year" output.check
      editor empty$
        'skip$
        { organization output }
      if$
      publisher output
    }
  if$
  note output
  fin.entry
}

FUNCTION {techreport}
{ output.bibitem
  format.authors "author" output.check
  format.title "title" output.check
  end.quote.title
  format.tr.number output.nonnull
  institution "institution" output.check
  address output
  format.date "year" output.check
  note output
  fin.entry
}

FUNCTION {unpublished}
{ output.bibitem
  format.authors "author" output.check
  format.title "title" output.check
  end.quote.title
  note "note" output.check
  fin.entry
}

FUNCTION {default.type} { misc }

READ

STRINGS { longest.label }

INTEGERS { number.label longest.label.width }

FUNCTION {initialize.longest.label}
{ "" 'longest.label :=
  #1 'number.label :=
  #0 'longest.label.width :=
}

FUNCTION {longest.label.pass}
{ number.label int.to.str$ 'label :=
  number.label #1 + 'number.label :=
  label width$ longest.label.width >
    { label 'longest.label :=
      label width$ 'longest.label.width :=
    }
    'skip$
  if$
}

EXECUTE {initialize.longest.label}

ITERATE {longest.label.pass}

FUNCTION {begin.bib}
{ preamble$ empty$
    'skip$
    { preamble$ write$ newline$ }
  if$
  "\begin{thebibliography}{"  longest.label  * "}" *
  write$ newline$
  "\newcommand{\enquote}[1]{``#1''}"
  write$ newline$
}

EXECUTE {begin.bib}

EXECUTE {init.state.consts}

ITERATE {call.type$}

FUNCTION {end.bib}
{ newline$
  "\end{thebibliography}" write$ newline$
}

EXECUTE {end.bib}
%</bibstyle>
%    \end{macrocode}
%
% This brings us to the end of \file{aiaa.bst}.
%
% \subsection{AIAA Endfloat Configuration File}
%
%    \begin{macrocode}
%
%<*enfconfig>
  \renewcommand{\listfigurename}{List of Figure Captions}
  \renewcommand{\listtablename}{List of Table Captions}
  \setcounter{lofdepth}{2}% puts subfigure captions in lof
  \def\numberline#1{\setlength{\@tempdima}{0.3in}%
    \hb@xt@\@tempdima{#1:}}% make bold numbers
  \renewcommand*{\l@figure}[2]{\vskip\abovedisplayskip%
   \setlength\@tempdima{1.5em}%
   \noindent{\bfseries \figurename\ #1}\par}
  \renewcommand*{\l@table}[2]{%
   \setlength\@tempdima{1.5em}%
   \noindent{\bfseries \tablename}\
  #1\hfil\vskip\belowdisplayskip }
% change lof behavior for subfigures:
  \renewcommand{\@dottedxxxline}[6]{%
    \ifnum #2>\@nameuse{c@#1depth}\else
      \vskip 3pt\hspace{0em}{\bfseries #5}\par\vskip 1pt
      \fi}
  \newcommand{\lox@subfigure}{\thesubfigure}
  \newcommand{\lox@subtable}{\thesubtable}
  \renewcommand{\@subcaption}[2]{%
    \begingroup
    \let\label\@gobble
    \let\protect\string
    \edef\@currentlabel{\csname lox@#1\endcsname}%
    \xdef\@subfigcaptionlist{%
        \@subfigcaptionlist,%
        {\numberline{\@currentlabel}\noexpand{\ignorespaces #2}}}%
   \endgroup
   \@nameuse{@make#1caption}{\@nameuse{@the#1}}{#2}}
  \renewcommand{\@makecaption}[2]{}
  \renewcommand{\@makesubfigurecaption}[2]{}
  \renewcommand{\@makesubtablecaption}[2]{}
  \let\OrigCaption\caption
  \renewcommand{\caption}[2][X]{\OrigCaption[#2]{}}
  \newcommand{\processfigures@hooka}{\@empty}
  \def\AtEndFigures{\g@addto@macro\processfigures@hooka}
  \newcommand{\processtables@hooka}{\@empty}
  \def\AtEndTables{\g@addto@macro\processtables@hooka}
  \AtBeginTables{\cfoot{\footnotesize\scshape\tablename\ \thetable\captionlabeldelim}}
  \AtEndTables{\cfoot{}}
  \AtBeginFigures{\cfoot{\footnotesize\scshape\figurename\ \thefigure\captionlabeldelim}}
  \AtEndFigures{\cfoot{}}
  \def\processfigures{%
   \expandafter\ifnum \csname @ef@fffopen\endcsname>0
    \immediate\closeout\efloat@postfff \ef@setct{fff}{0}
    \clearpage                                                        % bj
    \if@figlist                                                       % bj
      {\normalsize\listoffigures} % bj
      \clearpage                                                   % bj
    \fi
    \if@fighead
       \section*{\figuresection}                                   % bj
       \suppressfloats[t]                                          % jpg
    \fi
    \markboth{\uppercase{\figuresection}}{\uppercase{\figuresection}}% bj
    \processfigures@hook \@input{\jobname.fff} \processfigures@hooka
   \fi}
  \def\processtables{%
    \expandafter\ifnum \csname @ef@tttopen\endcsname>0
    \immediate\closeout\efloat@postttt \ef@setct{ttt}{0}
    \clearpage                                                      % bj
    \if@tablist                                                     % bj
      {\normalsize\listoftables}                                    % bj
      \clearpage % bj
    \fi
    \if@tabhead
        \section*{\tablesection}                                  % bj
        \suppressfloats[t]                                        % jpg
    \fi
    \markboth{\uppercase{\tablesection}}{\uppercase{\tablesection}}% bj
    \processtables@hook \@input{\jobname.ttt} \processtables@hooka
   \fi}
%</enfconfig>
%    \end{macrocode}
%
% This brings us to the end of \file{aiaaenf.cfg}.
%
% \Finale
%
