

***************************************************************************
AVL V2.5, dated 8-5-96                HHY

This source has been updated to match the Xplot10-4.3 plot library.

This version has a number of fixes over older versions, including:

  Bug fix on chord angles on tapered, twisted panels.

  Bug fix on hinge line vector to make both real and image hinge rotations
  in the same sense.

  The user can specify a CL or CM with "cl" or "cm" rather than 999. or -999 

  The Mach number is now a menu item (regenerates matrices for each new Mach)

  The getvm.f module now dumps the shear (Vz) and moment Myy for each panel.

This version does not include any drag polar interpolation or the INDRAG 
drag calculation.  See avl-polartrp for these...




***************************************************************************
AVL 2.70, dated 2-24-97               HHY

Massive rewrite of AVL:

Completely new geometry plotting with many display options.
  Fixes to hidden line routines.
  Eliminated old lame loading plots
  Updated Trefftz plane plots

Auto-image generation in main Option menu that generates an image half 
for cases with IYsym=1.

Matrix solution completely revised to take full advantage of symmetry for 4x
increase in speed for symmetric cases where the image side is generated with 
the auto-image option.

Section viscous drag can now be included and summed into forces.
A CD(CL) polar can be defined for each section based on 6 pairs of CL,CD
points in the polar.

Angular rates can be specified in either Stabilty axes or Body axes.

Forces can be resolved in NASA Stability axes or Geometric Stability axes.
Options are added to select the axes used for rates and forces.

Comments starting with ! are recognized in the input deck to make datasets
more self documenting.

The ambiguity of what SREF refers to is resolved by making SREF refer to both 
sides of a symmetric configuration (IYsym=1) rather than half the total area
as used in previous AVL versions.  NOTE THAT YOU WILL HAVE TO DOUBLE THE SREF
FOR OLDER DATASETS with IYSYM=1.


***************************************************************************
AVL 2.76, dated 5-4-98               HHY

Fixes and changes motivated by Ming Chang @ LMSW 
  Added CMLE for strip to get hinge moments
  changes to output routines for printed data FS strip,FT total,FE element
  updated selection menu for surfaces
  fixed CDvisc linearization with dCDv/dCL term from CDCL routine


***************************************************************************
AVL 2.77, dated 5-22-98               HHY

Several problems were noted with winglets and the displayed surface forces
in local reference coordinates.  This prompted a bunch of changes and updates:

Rehash of forces calculation in AERO 
  started going to calculating body axes forces and then transforming to
    local systems using direction dot products (less confusing)
  added locally referenced surface CL,CD,CMLE
  new treatment for calculating local CL,CD for strips & surfaces
  Changed surface CMLE calculation 
  fixed (properly) strip CN,CA to properly reflect X chordline (may want to 
    add incidence to the axial direction eventually)
  strip CD(CL) fixed to use proper local CL rather than CL component 
    in global system (affected winglets and dihedraled surfaces)

New output routine to separate surface by surface forces listing from 
the total forces output.  Added print flags for controling output print from
these new options. 

Added option of displaying current hinge settings using ? input on command
line when entering hinge data.

Biggish changes to aplotccl.f to plot Trefftz data vs either Y or Z
  added user-specified plot limits
  fixed bug for -Y scale on plotting (axis was improperly shifted)

Changed colors a bit in aplotvl.f to accentuate loadings better in plots.

Note that there appears to be compiler bug using g77-0.5.21 on hidden.f, you 
might want to use f2c to compile this routine to avoid this bug (which appears
as random line segments appearing in foreground surfaces from background 
lines.  None of the other compilers appear to have this problem...


***************************************************************************
AVL 2.78, dated 7-5-98               MD

Fixed a bug in the stability-derivative calculation.

Hinge angles can now be changed either directly as before, or indirectly
by perturbing the control variables...

 delta_a     delta_t
 delta_e     delta_a
 delta_r     delta_f

which influence the hinge angles via the new "CONTROL" keyword
declaration for a surface.  See the avl.doc manual for details.

Eliminated the SLOPE keyword capability, which has never been 
used as far as I can tell.

Added control-deflection derivatives to the stability-derivative output,
so that quantities like Cmde = d(Cm)/d(delta_e) are displayed.
It is no longer necessary to generate these by manually perturbing
each control surface and finite-differencing the forces.

Added design variables, which currently represent virtual twists
added to one or more sections.  Sensitivities of CL, CD, etc
to these design variables can be displayed.  The intent is to
give some guidance to span load optimization.

Added hot-key rotation capability to the Geometry plot menu.


***************************************************************************
AVL 2.81   7 June 03                MD

Major revisions for new 2.8x series...

Changed CONTROL definitions to be associated with sections.
These modify the camberline via control variables defined
entirely by the used.  The built-in control variables delta_a,
delta_e, etc., have been eliminated.  The user specifies the
name of each control variable.

General trimming capability has been added, including the ability
to drive control variables to achieve trim.  Constraints are
selected from a general sub-menu.

Hinge stuff has been removed, since it's somewhat redundant
with the new control stuff -- putting the control hingeline 
at 0% chord will rotate the whole surface just like the previous
hinge feature.

Design parameters are now input one per DESIGN declaration,
and the user can specify the design parameter name.

---------------------------------
AVL 2.82  (minor tweaks on 2.81)    13 Jun 03              MD

Re-organized some of the menus.

Fixed a few typos in the menus, the user manual, and the session.txt file.


***************************************************************************
AVL 3.00   22 Sep 03                MD

Very major revision for 3.0x series...

Added finite core radius option to mostly eliminate hassles 
with alignment of trailing vortices with downstream surface paneling.

Forces are computed not only on the bound vortex legs, but also
on the parts of trailing legs which lie on the physical surface.
This mainly affects the rolling moment due to sideslip.

Added body modeling via source+doublet lines.  These affect
the vortex lattice circulations via their volume velocity fields.
They also see direct forces and moments via slender-body theory.
It's not yet clear how useful this modeling capability will be.

Errors in the input file will now produce much better diagnostic
messages than before.  The offending line and line number are displayed.

Added general operating state calculation interface.
Variables consisting of alpha, beta, rotation rates, and control deflections
can be either imposed explicitly, or computed implicitly via imposed force
or moment coefficients.  Trim states can thus be easily computed.

Multiple operating run cases can be defined and saved to a file
for later recall.  This allows easy re-running of cases 
after a geometry modification, say.

Geometry plot has been improved, with x,y,z space axes added.


------------------------------------------
AVL 3.01  10 Jan 04              MD

Added a flight dynamics mode calculation and display module.
This requires mass and inertia data, which is read from a file,
or input manually.  Using the mass file also provides other 
necessary dimensional data, such as the air density and the 
gravitational acceleration, and allows declaration of working
units which can differ from those used to define the geometry 
and masses.

------------------------------------------
AVL 3.11  6 May 04                MD

OPER now allows easy setup of trim states in level or banked 
horizontal flight (C1 sub-menu), or in planar looping flight 
(C2 sub-menu).

Added multiple-case parameter input capability to the C1,C2 sub-menus
in OPER, and the M sub-menu in MODE.  Multiple cases are targeted
by typing the parameter command twice (see manual).

Additional parameters can be varied in root-locus sweeps, in particular
the reference (CG) location, and the mass and inertias.

Added camera pan/no-pan option to the eigenmode viewer in MODE.

------------------------------------------
AVL 3.13  21 May 04                MD

Added the optional CLAF surface-section parameter, which
allows changing the effective section dcl/da to something
other than 2 pi to better represent thick airfoils.

------------------------------------------
AVL 3.15  8 Oct 04                 HY, MD

Changed subroutine name GETLOG to GETLGV to avoid intrinsic-function
name conflict on some compilers.

Changed subroutine name SECOND to TSECOND to avoid intrinsic-function
name conflict on some compilers.

Added commented-out code which calls SECNDS function rather than
the current call to the CLOCKX subroutine  (at bottom of aplotmd.f).
The SECNDS function is used on some Fortran implementations.

Fixed a minor bug in the a.i.c. Jacobian calculation
(no perceivable effect on solution).

Fixed some filename parsing problems at top level.

------------------------------------------
AVL 3.16  10 Mar 05               MD

Fixed minor problem with handling of nonzero specified yaw moment (hardly used)

Moved force evaluation points on bound vortices from the midpoints 
to the uniform/cosine/sine/ interpolation points.  This makes the 
near-field and Trefftz-Plane drags nearly identical.

The force evaluation points are now plotted along with the control points
in the Geometry plot submenu in OPER.

------------------------------------------
AVL 3.18  22 Aug 05               MD

Fixed a program-flow logic bug:  When a new .avl file was LOADed, 
its velocity-influence coefficients used for force calculations 
were not being properly recalculated.

Fixed bug in the design-variable implementation.  Assigned values
weren't being properly incorporated into the calculation.

Added a CY (sideforce) constraint to the list of available constraints.
This might be used to constraint beta in a knife-edge flight situation.

Added note to avl_doc.txt on vortex spacing refinement and accuracy.
Item 4) in "Vortex Lattice Spacing Distributions" section.

------------------------------------------
AVL 3.19  7 Sep 05                MD

Fixed a minor bug in the Trefftz forces for y-symmetric cases.
The Y-force CYTOT wasn't zeroed out like it should be.

------------------------------------------
AVL 3.20  24 Oct 05                MD

Fixed error in printout of r'b/2V value.
Its transformation to stability axes wasn't correct.
There was no effect on the other displayed quantities.


------------------------------------------
AVL 3.21  25 Oct 05                MD

Fixed error in printout of Cl,Cn moments for large alpha values.
The transformation to stability axes wasn't correct.


------------------------------------------
AVL 3.22  12 Nov 05                MD

Stability matrix outputs have been clarified. 
There is now a clear distinction between stability-axis
and body-axis forces and moments.  Previously, the
ST command gave a mixed-axis stability derivate matrix.

Made alpha,beta application order consistent with the standard sense
(alpha, then beta). 

Added cl_norm output to strip force listing.  
This is the cl_norm that's plotted on the Trefftz-Plane plot.

Added CINI command to allow clearing of run cases if necessary


------------------------------------------
AVL 3.23  30 Nov 05                MD

Added non-existent airfoil file check to the input file parser.
If a section airfoil file (after AFIL keyword) is not found, 
a default zero-camber airfoil will be used.


------------------------------------------
AVL 3.24  20 Dec 05                MD

Added Pan and Expand hot keys to Keystroke Viewer
in the Geometry plot function.


------------------------------------------
AVL 3.25  18 Mar 06                MD

Set default printnames for run-case parameter units.
Previously these were undefined.


------------------------------------------
AVL 3.26  29 Apr 06                MD

Added freestream-referenced cl to Trefftz-Plane plot (in yellow),
in addition to the wing-perpendicular referenced plot.
Wing-perpendicular cl plot can now be turned off by toggle,
like the downwash angle plot.

Fixed hinge-moment calculation for leading-edge flaps.

Fixed Hardcopy and Annotate functions in the keystroke viewer.   15 Sep 06

 
------------------------------------------
AVL 3.27  23 May 08                MD

The small green xyz axes in the perspective plots are now "3D".
This makes is easier to see the orientation of the airplane.

Fixed the CL_u,CM_u input in the parameter modify submenu (M command)

Changed the cl(y) line plot from yellow to orange, for better contrast 
on white paper hardcopy.

Removed the small influence of CLAF on the zero-lift angle.
This wasn't quite right for symmetric airfoils.  This will
influence only the trimmed control positions, not the trimmed
forces or stability derivatives.

All printout commands (FN,FT,ST,etc) now have the option 
of printing to the screen, or to a file.

Fixed the mode-movie stuff in MODE for single precision.
This should now work properly with g77.

Added the clock-wait toggle (W hot key) in the mode-movie menu.

Made separate clock subroutine files second_g77.f and second_ifc.f 
One of these should work with most Fortran compilers.  The appropriate
one is selected as variable SECOND in the Makefile.
 
------------------------------------------
AVL 3.28  10 Jan 09                HHY/MD

Added input keyword COMPONENT as equivalent to INDEX for grouping surfaces 
(mostly done to avoid problems with vortex core radius screwing up velocity 
influences).  COMPONENT is more descriptive of this function.

Plotting bug fixed for body geometry when loading plotting is enabled.  Line 
thickness and color for bodies was not properly initialized.

Forces for bodies (from sources/doublets on centerlines) are now saved for 
post-processing and printout. Added calculation of body length, surface area 
and volume to amake.f.  These quantities are displayed with the FB printout 
command.

New print command FB added for body forces, similar to FN surface forces, 
available from OPER menu.

Fixed a subtle scaling error in the profile-drag contribution 
to the total drag force.  Each chord strip's Cd had an extra
c/c_ref factor which shouldn't have been there.  This factor
typically averages out to unity over the wing, so the influence
will be very small in most cases.

Psuedo-bug fixed for filenames (in AFILE or BFILE) that have embedded blanks
(a bad practice but in Windows you may not have a choice!).  New scheme
uses double quotes around the "pathnamefilenamestring" to delimit filename.  
Old filename inputs without double quotes work as before.

Updates made to avl_doc.txt and README.

------------------------------------------
AVL 3.30    20 Aug 10                  MD

Added the following optional keyword declarations for a SURFACE:
NOWAKE
NOALBE
NOLOAD

These allow modeling of a new wide variety of situations:
- Fuselage without wake shedding (moments only, no net forces).
- Formation flight effects on trim.
- Formation flight effects on flight dynamics.
- Ground effect over uneven ground.
- Wind tunnel wall interference.

Wing tunnel  example case:  d81t.avl
Equivalent no-tunnel case:  d81.avl

Partial-shedding fuselage example using NOWAKE:  b737.avl


------------------------------------------
AVL 3.31    5 Dec 10                   MD

- Fixed an almost imperceptible bug in the force calculation on a BODY.
  The X- and Y-force derivatives on a BODY were not summed correctly.
  This had no effect on a configuration without a BODY object.

------------------------------------------
AVL 3.32   15 Jan 11                   MD

- Fixed the post-processing calculation of the strip center of pressure, 
  labeled "C.P.x/c", in the strip-force output (FS command in OPER).  
  It was not correct for sections with significant sweep or dihedral.  

------------------------------------------
AVL 3.33   21 Feb 13                   MD

- Fixed printout of length unit of X_cg,Y_cg,Z_cg in .run file.
  This did not affect the results, or any other output.

------------------------------------------
AVL 3.34    7 Jun 13                   MD

- Added capability do dump a multi-page PS file, to make an animated GIF

------------------------------------------
AVL 3.35   29 Nov 13                   MD

- Added second-order righthand sides to the VL system, proportional
  to both the unit translation+rotation velocities, and to control deflections.
  The general superposition for the h.v. strengths is then:

    Gam_i = Gam_ik Uk + U_k Gam_ikl delta_l    (new)

  Previously only the U_1 (x-velocity) control-influence vector was present:

    Gam_i = Gam_ik Uk +     Gam_il  delta_l    (old, second term assumes Uk = 1,0,0,0,0,0)

  This improves convergence to the trim condition.
  It also gives the correct eigenmode solutions even for large trim control deflections,
  because the new derivatives w.r.t. translations and rotations are:

    dGam_i/dU_k  =  Gam_ik  +  Gam_ikl delta_l    (new)

  The previous form ignored the second term with trim control deflections:

    dGam_i/dU_k  =  Gam_ik                        (old)


------------------------------------------
AVL 3.36   12 Feb 16                   HHY & MD

- Bug (found by Francesco Meschia) which blows up in call to PLPARS if no 
  file has been read on startup (how do we miss these things?).  Fix added 
  check for valid file read.

- Increased size of character buffers for filenames for use on Windows with
  long pathnames (Benjamin Muyl).  Also increased #surfaces to 100 and #strips
  to 500

- Increased the number of significant digits in printed CD values in aoutput.f

- Added alternative CLCD specification for SURFACE (was required for each
  SECTION). See avl_doc.txt for syntax.

- Added instructions for creating an animated GIF from an eigenmode "movie".
  See bottom of avl_doc.txt 
