]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/UIUCModel/uiuc_aircraft.h
Port over remaining Point3D usage to the more type and unit safe SG* classes.
[flightgear.git] / src / FDM / UIUCModel / uiuc_aircraft.h
index a0d4e1d888295db96131237e60e815e6ce5a3cd6..1ade41da2b0fcf7938b63b19c8bcc468591eb02b 100644 (file)
               11/12/2001   (RD) Added variables needed for Twin Otter
                            non-linear model with flaps (Cxfxxf). 
                            Zero flap variables removed.
+               01/11/2002   (AP) Added keywords for bootTime
               02/13/2002   (RD) Added variables so linear aero model
                            values can be recorded
               02/18/2002   (RD) Added variables necessary to use the
                            uiuc_3Dinterp_quick() function.  Takes
                            advantage of data in a "nice" form (data
                            that are in a rectangular matrix).
+              04/21/2002   (MSS) Added new variables for apparent mass effects
+                            and options for computing *_2U coefficient
+                            scale factors.
+               08/29/2002   (MSS) Added simpleSingleModel
+              09/18/2002   (MSS) Added downwash options
+               03/03/2003   (RD) Changed flap_cmd_deg to flap_cmd (rad)
+               03/16/2003   (RD) Added trigger variables
+               08/20/2003   (RD) Removed old_flap_routine.  Changed spoiler
+                            variables to match flap convention.  Changed
+                            flap_pos_pct to flap_pos_norm
+               10/31/2003   (RD) Added variables and keywords for pah and alh
+                            autopilots
+               11/04/2003   (RD) Added variables and keywords for rah and hh
+                            autopilots
 
 ----------------------------------------------------------------------
 
@@ -72,6 +87,7 @@
                Jeff Scott         <jscott@mail.com>
               Robert Deters      <rdeters@uiuc.edu>
                David Megginson    <david@megginson.com>
+              Ann Peedikayil     <peedikay@uiuc.edu>
 
 ----------------------------------------------------------------------
 
 
  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- USA or view http://www.gnu.org/copyleft/gpl.html.
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
 **********************************************************************/
 
 #include <FDM/LaRCsim/ls_types.h>
 
 #include <map>
-#include STL_IOSTREAM
-#include <math.h>
+#include <fstream>
+#include <cmath>
 
 #include "uiuc_parsefile.h"
-
-SG_USING_STD(map);
-#if !defined (SG_HAVE_NATIVE_SGI_COMPILERS)
-SG_USING_STD(iostream);
-SG_USING_STD(ofstream);
-#endif
-
+#include "uiuc_flapdata.h"
 
 typedef stack :: iterator LIST;
 
@@ -149,76 +158,172 @@ enum {init_flag = 1000, geometry_flag, controlSurface_flag, controlsMixer_flag,
       Cn_flag, gear_flag, ice_flag, record_flag, misc_flag, fog_flag};
 
 // init ======= Initial values for equation of motion
-enum {Dx_pilot_flag = 2000, Dy_pilot_flag, Dz_pilot_flag, 
-      Dx_cg_flag, Dy_cg_flag, Dz_cg_flag, Altitude_flag,
-      V_north_flag, V_east_flag, V_down_flag, 
-      P_body_flag, Q_body_flag, R_body_flag, 
-      Phi_flag, Theta_flag, Psi_flag,
-      Long_trim_flag, recordRate_flag, recordStartTime_flag, 
-      nondim_rate_V_rel_wind_flag, dyn_on_speed_flag, Alpha_flag, 
-      Beta_flag, U_body_flag, V_body_flag, W_body_flag};
+// added to uiuc_map_init.cpp
+enum {Dx_pilot_flag = 2000, 
+      Dy_pilot_flag,
+      Dz_pilot_flag,
+      Dx_cg_flag,
+      Dy_cg_flag,
+      Dz_cg_flag,
+      Altitude_flag,
+      V_north_flag,
+      V_east_flag,
+      V_down_flag, 
+      P_body_flag,
+      Q_body_flag,
+      R_body_flag, 
+      Phi_flag,
+      Theta_flag,
+      Psi_flag,
+      Long_trim_flag,
+      recordRate_flag,
+      recordStartTime_flag, 
+      use_V_rel_wind_2U_flag,
+      nondim_rate_V_rel_wind_flag, 
+      use_abs_U_body_2U_flag,
+      dyn_on_speed_flag,
+      dyn_on_speed_zero_flag, 
+      use_dyn_on_speed_curve1_flag,
+      use_Alpha_dot_on_speed_flag, 
+      use_gamma_horiz_on_speed_flag, 
+      gamma_horiz_on_speed,
+      downwashMode_flag,
+      downwashCoef_flag,
+      Alpha_flag, 
+      Beta_flag,
+      U_body_flag,
+      V_body_flag,
+      W_body_flag,
+      ignore_unknown_keywords_flag,
+      trim_case_2_flag,
+      use_uiuc_network_flag,
+      icing_demo_flag,
+      outside_control_flag};
 
 // geometry === Aircraft-specific geometric quantities
+// added to uiuc_map_geometry.cpp
 enum {bw_flag = 3000, cbar_flag, Sw_flag, ih_flag, bh_flag, ch_flag, Sh_flag};
 
 // controlSurface = Control surface deflections and properties
+// added to uiuc_map_controlSurface.cpp
 enum {de_flag = 4000, da_flag, dr_flag, 
       set_Long_trim_flag, set_Long_trim_deg_flag, zero_Long_trim_flag, 
       elevator_step_flag, elevator_singlet_flag, elevator_doublet_flag,
-      elevator_input_flag, aileron_input_flag, rudder_input_flag, 
-      pilot_elev_no_flag, pilot_ail_no_flag, pilot_rud_no_flag, flap_max_flag,
-      flap_rate_flag};
+      elevator_input_flag, aileron_input_flag, rudder_input_flag, flap_pos_input_flag, 
+      pilot_elev_no_flag, pilot_ail_no_flag, pilot_rud_no_flag, 
+      flap_max_flag, flap_rate_flag, use_flaps_flag, 
+      spoiler_max_flag, spoiler_rate_flag, use_spoilers_flag, 
+      aileron_sas_KP_flag, 
+      aileron_sas_max_flag, 
+      aileron_stick_gain_flag,
+      elevator_sas_KQ_flag, 
+      elevator_sas_max_flag, 
+      elevator_sas_min_flag, 
+      elevator_stick_gain_flag,
+      rudder_sas_KR_flag, 
+      rudder_sas_max_flag, 
+      rudder_stick_gain_flag,
+      use_elevator_sas_type1_flag, 
+      use_aileron_sas_type1_flag, 
+      use_rudder_sas_type1_flag,
+      ap_pah_flag, ap_alh_flag, ap_Theta_ref_flag, ap_alt_ref_flag,
+      ap_rah_flag, ap_Phi_ref_flag, ap_hh_flag, ap_Psi_ref_flag};
 
 // controlsMixer == Controls mixer
 enum {nomix_flag = 5000};
 
 //mass ======== Aircraft-specific mass properties
-enum {Weight_flag = 6000, Mass_flag, I_xx_flag, I_yy_flag, I_zz_flag, I_xz_flag};
+// added to uiuc_map_mass.cpp
+enum {Weight_flag = 6000, 
+      Mass_flag, I_xx_flag, I_yy_flag, I_zz_flag, I_xz_flag,
+      Mass_appMass_ratio_flag, I_xx_appMass_ratio_flag, 
+      I_yy_appMass_ratio_flag, I_zz_appMass_ratio_flag, 
+      Mass_appMass_flag,       I_xx_appMass_flag,      
+      I_yy_appMass_flag,       I_zz_appMass_flag};
 
 // engine ===== Propulsion data
-enum {simpleSingle_flag = 7000, c172_flag, cherokee_flag, 
-      Throttle_pct_input_flag};
+// added to uiuc_map_engine.cpp
+enum {simpleSingle_flag = 7000, simpleSingleModel_flag,
+      c172_flag, cherokee_flag, gyroForce_Q_body_flag, gyroForce_R_body_flag, 
+      omega_flag, omegaRPM_flag, polarInertia_flag,
+      slipstream_effects_flag, propDia_flag,
+      eta_q_Cm_q_flag,
+      eta_q_Cm_adot_flag,
+      eta_q_Cmfade_flag,
+      eta_q_Cm_de_flag,
+      eta_q_Cl_beta_flag,
+      eta_q_Cl_p_flag,
+      eta_q_Cl_r_flag,
+      eta_q_Cl_dr_flag,
+      eta_q_CY_beta_flag,
+      eta_q_CY_p_flag,
+      eta_q_CY_r_flag,
+      eta_q_CY_dr_flag,
+      eta_q_Cn_beta_flag,
+      eta_q_Cn_p_flag,
+      eta_q_Cn_r_flag,
+      eta_q_Cn_dr_flag,
+      Throttle_pct_input_flag, forcemom_flag, Xp_input_flag, Zp_input_flag, Mp_input_flag};
 
 // CD ========= Aerodynamic x-force quantities (longitudinal)
-enum {CDo_flag = 8000, CDK_flag, CD_a_flag, CD_adot_flag, CD_q_flag, CD_ih_flag, CD_de_flag, 
+// added to uiuc_map_CD.cpp
+enum {CDo_flag = 8000, CDK_flag, CLK_flag, CD_a_flag, CD_adot_flag, CD_q_flag, CD_ih_flag, 
+      CD_de_flag, CD_dr_flag, CD_da_flag, CD_beta_flag,
+      CD_df_flag,
+      CD_ds_flag,
+      CD_dg_flag,
       CDfa_flag, CDfCL_flag, CDfade_flag, CDfdf_flag, CDfadf_flag, 
       CXo_flag, CXK_flag, CX_a_flag, CX_a2_flag, CX_a3_flag, CX_adot_flag, 
       CX_q_flag, CX_de_flag, CX_dr_flag, CX_df_flag, CX_adf_flag, 
       CXfabetaf_flag, CXfadef_flag, CXfaqf_flag};
 
 // CL ========= Aerodynamic z-force quantities (longitudinal)
+// added to uiuc_map_CL.cpp
 enum {CLo_flag = 9000, CL_a_flag, CL_adot_flag, CL_q_flag, CL_ih_flag, CL_de_flag, 
+      CL_df_flag,
+      CL_ds_flag,
+      CL_dg_flag,
       CLfa_flag, CLfade_flag, CLfdf_flag, CLfadf_flag, 
       CZo_flag, CZ_a_flag, CZ_a2_flag, CZ_a3_flag, CZ_adot_flag, 
       CZ_q_flag, CZ_de_flag, CZ_deb2_flag, CZ_df_flag, CZ_adf_flag, 
       CZfa_flag, CZfabetaf_flag, CZfadef_flag, CZfaqf_flag};
 
 // Cm ========= Aerodynamic m-moment quantities (longitudinal)
+// added to uiuc_map_Cm.cpp
 enum {Cmo_flag = 10000, Cm_a_flag, Cm_a2_flag, Cm_adot_flag, Cm_q_flag, 
-      Cm_ih_flag, Cm_de_flag, Cm_b2_flag, Cm_r_flag, Cm_df_flag, 
+      Cm_ih_flag, Cm_de_flag, Cm_b2_flag, Cm_r_flag,
+      Cm_df_flag,
+      Cm_ds_flag,
+      Cm_dg_flag,
       Cmfa_flag, Cmfade_flag, Cmfdf_flag, Cmfadf_flag, 
       Cmfabetaf_flag, Cmfadef_flag, Cmfaqf_flag};
 
 // CY ========= Aerodynamic y-force quantities (lateral)
+// added to uiuc_map_CY.cpp
 enum {CYo_flag = 11000, CY_beta_flag, CY_p_flag, CY_r_flag, CY_da_flag, 
       CY_dr_flag, CY_dra_flag, CY_bdot_flag, CYfada_flag, CYfbetadr_flag, 
       CYfabetaf_flag, CYfadaf_flag, CYfadrf_flag, CYfapf_flag, CYfarf_flag};
 
 // Cl ========= Aerodynamic l-moment quantities (lateral)
+// added to uiuc_map_Cl.cpp
 enum {Clo_flag = 12000, Cl_beta_flag, Cl_p_flag, Cl_r_flag, Cl_da_flag, 
       Cl_dr_flag, Cl_daa_flag, Clfada_flag, Clfbetadr_flag, Clfabetaf_flag,
       Clfadaf_flag, Clfadrf_flag, Clfapf_flag, Clfarf_flag};
 
 // Cn ========= Aerodynamic n-moment quantities (lateral)
+// added to uiuc_map_Cn.cpp
 enum {Cno_flag = 13000, Cn_beta_flag, Cn_p_flag, Cn_r_flag, Cn_da_flag, 
       Cn_dr_flag, Cn_q_flag, Cn_b3_flag, Cnfada_flag, Cnfbetadr_flag, 
       Cnfabetaf_flag, Cnfadaf_flag, Cnfadrf_flag, Cnfapf_flag, Cnfarf_flag};
 
 // gear ======= Landing gear model quantities
+// added to uiuc_map_gear.cpp
 enum {Dx_gear_flag = 14000, Dy_gear_flag, Dz_gear_flag, cgear_flag,
-      kgear_flag, muGear_flag, strutLength_flag};
+      kgear_flag, muGear_flag, strutLength_flag,
+      gear_max_flag, gear_rate_flag, use_gear_flag};
 
 // ice ======== Ice model quantities
+// added to uiuc_map_ice.cpp
 enum {iceTime_flag = 15000, transientTime_flag, eta_ice_final_flag, 
       beta_probe_wing_flag, beta_probe_tail_flag, 
       kCDo_flag, kCDK_flag, kCD_a_flag, kCD_adot_flag, kCD_q_flag, kCD_de_flag, 
@@ -234,19 +339,46 @@ enum {iceTime_flag = 15000, transientTime_flag, eta_ice_final_flag,
       kClo_flag, kCl_beta_flag, kCl_p_flag, kCl_r_flag, kCl_da_flag, 
       kCl_dr_flag, kCl_daa_flag, 
       kCno_flag, kCn_beta_flag, kCn_p_flag, kCn_r_flag, kCn_da_flag, 
-      kCn_dr_flag, kCn_q_flag, kCn_b3_flag};
+      kCn_dr_flag, kCn_q_flag, kCn_b3_flag, bootTime_flag,
+      
+      eta_wing_left_input_flag, eta_wing_right_input_flag, 
+      eta_tail_input_flag, nonlin_ice_case_flag, eta_tail_flag,
+      eta_wing_left_flag, eta_wing_right_flag,
+
+      demo_eps_alpha_max_flag, demo_eps_pitch_max_flag, 
+      demo_eps_pitch_min_flag, demo_eps_roll_max_flag, 
+      demo_eps_thrust_min_flag, demo_eps_flap_max_flag, 
+      demo_eps_airspeed_max_flag, demo_eps_airspeed_min_flag,
+      demo_boot_cycle_tail_flag, demo_boot_cycle_wing_left_flag,
+      demo_boot_cycle_wing_right_flag, demo_eps_pitch_input_flag,
+      tactilefadef_flag, tactile_pitch_flag, demo_ap_pah_on_flag,
+      demo_ap_alh_on_flag, demo_ap_rah_on_flag, demo_ap_hh_on_flag,
+      demo_ap_Theta_ref_flag, demo_ap_alt_ref_flag,
+      demo_ap_Phi_ref_flag, demo_ap_Psi_ref_flag, 
+      demo_tactile_flag, demo_ice_tail_flag, 
+      demo_ice_left_flag, demo_ice_right_flag};
 
 // record ===== Record desired quantites to file
 enum {Simtime_record = 16000, dt_record, 
 
+      cbar_2U_record, b_2U_record, ch_2U_record,
+
+      // added to uiuc_map_record1.cpp
       Weight_record, Mass_record, I_xx_record, I_yy_record, I_zz_record, I_xz_record, 
+      Mass_appMass_ratio_record, I_xx_appMass_ratio_record, 
+      I_yy_appMass_ratio_record, I_zz_appMass_ratio_record, 
+      Mass_appMass_record,       I_xx_appMass_record,      
+      I_yy_appMass_record,       I_zz_appMass_record,
 
+      // added to uiuc_map_record1.cpp
       Dx_pilot_record, Dy_pilot_record, Dz_pilot_record, 
       Dx_cg_record, Dy_cg_record, Dz_cg_record,
       Lat_geocentric_record, Lon_geocentric_record, Radius_to_vehicle_record, 
       Latitude_record, Longitude_record, Altitude_record, 
-      Phi_record, Theta_record, Psi_record, 
+      Phi_record, Theta_record, Psi_record,
+      Phi_deg_record, Theta_deg_record, Psi_deg_record, 
 
+      // added to uiuc_map_record1.cpp
       V_dot_north_record, V_dot_east_record, V_dot_down_record, 
       U_dot_body_record, V_dot_body_record, W_dot_body_record, 
       A_X_pilot_record, A_Y_pilot_record, A_Z_pilot_record, 
@@ -255,6 +387,7 @@ enum {Simtime_record = 16000, dt_record,
       N_X_cg_record, N_Y_cg_record, N_Z_cg_record, 
       P_dot_body_record, Q_dot_body_record, R_dot_body_record, 
 
+      // added to uiuc_map_record2.cpp
       V_north_record, V_east_record, V_down_record, 
       V_north_rel_ground_record, V_east_rel_ground_record, V_down_rel_ground_record, 
       V_north_airmass_record, V_east_airmass_record, V_down_airmass_record, 
@@ -270,15 +403,18 @@ enum {Simtime_record = 16000, dt_record,
       Phi_dot_record, Theta_dot_record, Psi_dot_record, 
       Latitude_dot_record, Longitude_dot_record, Radius_dot_record, 
 
+      // added to uiuc_map_record2.cpp
       Alpha_record, Alpha_deg_record, Alpha_dot_record, Alpha_dot_deg_record, 
       Beta_record, Beta_deg_record, Beta_dot_record, Beta_dot_deg_record, 
       Gamma_vert_record, Gamma_vert_deg_record, Gamma_horiz_record, Gamma_horiz_deg_record,
 
+      // added to uiuc_map_record3.cpp
       Density_record, V_sound_record, Mach_number_record, 
       Static_pressure_record, Total_pressure_record, Impact_pressure_record, 
       Dynamic_pressure_record, 
       Static_temperature_record, Total_temperature_record, 
 
+      // added to uiuc_map_record3.cpp
       Gravity_record, Sea_level_radius_record, Earth_position_angle_record, 
       Runway_altitude_record, Runway_latitude_record, Runway_longitude_record, 
       Runway_heading_record, Radius_to_rwy_record, 
@@ -287,20 +423,31 @@ enum {Simtime_record = 16000, dt_record,
       D_cg_north_of_rwy_record, D_cg_east_of_rwy_record, D_cg_above_rwy_record, 
       X_cg_rwy_record, Y_cg_rwy_record, H_cg_rwy_record, 
 
+      // added to uiuc_map_record3.cpp
       Throttle_3_record, Throttle_pct_record, 
 
+      // added to uiuc_map_record3.cpp
       Long_control_record, Long_trim_record, Long_trim_deg_record, 
       elevator_record, elevator_deg_record, 
       Lat_control_record, aileron_record, aileron_deg_record, 
       Rudder_pedal_record, rudder_record, rudder_deg_record, 
-      Flap_handle_record, flap_record, flap_deg_record, flap_goal_record,
-      flap_pos_record,
+      Flap_handle_record, flap_cmd_record, flap_cmd_deg_record,
+      flap_pos_record, flap_pos_deg_record, flap_pos_norm_record,
+      Spoiler_handle_record, spoiler_cmd_deg_record, 
+      spoiler_pos_deg_record, spoiler_pos_norm_record, spoiler_pos_record,
+      spoiler_cmd_record,
 
+      // added to uiuc_map_record4.cpp
       CD_record, CDfaI_record, CDfCLI_record, CDfadeI_record, CDfdfI_record, 
       CDfadfI_record, CX_record, CXfabetafI_record, CXfadefI_record, 
       CXfaqfI_record,
-      CDo_save_record, CDK_save_record, CD_a_save_record, CD_adot_save_record,
-      CD_q_save_record, CD_ih_save_record, CD_de_save_record, CXo_save_record,
+      CDo_save_record, CDK_save_record, CLK_save_record, CD_a_save_record, CD_adot_save_record,
+      CD_q_save_record, CD_ih_save_record, 
+      CD_de_save_record, CD_dr_save_record, CD_da_save_record, CD_beta_save_record, 
+      CD_df_save_record,
+      CD_ds_save_record,
+      CD_dg_save_record,
+      CXo_save_record,
       CXK_save_record, CX_a_save_record, CX_a2_save_record, CX_a3_save_record,
       CX_adot_save_record, CX_q_save_record, CX_de_save_record,
       CX_dr_save_record, CX_df_save_record, CX_adf_save_record,
@@ -308,7 +455,11 @@ enum {Simtime_record = 16000, dt_record,
       CZ_record, CZfaI_record, CZfabetafI_record, CZfadefI_record, 
       CZfaqfI_record, 
       CLo_save_record, CL_a_save_record, CL_adot_save_record, CL_q_save_record,
-      CL_ih_save_record, CL_de_save_record, CZo_save_record, CZ_a_save_record,
+      CL_ih_save_record, CL_de_save_record, 
+      CL_df_save_record,
+      CL_ds_save_record,
+      CL_dg_save_record,
+      CZo_save_record, CZ_a_save_record,
       CZ_a2_save_record, CZ_a3_save_record, CZ_adot_save_record,
       CZ_q_save_record, CZ_de_save_record, CZ_deb2_save_record,
       CZ_df_save_record, CZ_adf_save_record,
@@ -318,6 +469,8 @@ enum {Simtime_record = 16000, dt_record,
       Cm_adot_save_record, Cm_q_save_record, Cm_ih_save_record,
       Cm_de_save_record, Cm_b2_save_record, Cm_r_save_record, 
       Cm_df_save_record,
+      Cm_ds_save_record,
+      Cm_dg_save_record,
       CY_record, CYfadaI_record, CYfbetadrI_record, CYfabetafI_record, 
       CYfadafI_record, CYfadrfI_record, CYfapfI_record, CYfarfI_record, 
       CYo_save_record, CY_beta_save_record, CY_p_save_record,
@@ -333,18 +486,64 @@ enum {Simtime_record = 16000, dt_record,
       Cn_da_save_record, Cn_dr_save_record, Cn_q_save_record,
       Cn_b3_save_record,
       
+      // added to uiuc_map_record5.cpp
       F_X_wind_record, F_Y_wind_record, F_Z_wind_record, 
       F_X_aero_record, F_Y_aero_record, F_Z_aero_record,
       F_X_engine_record, F_Y_engine_record, F_Z_engine_record, 
       F_X_gear_record, F_Y_gear_record, F_Z_gear_record, 
       F_X_record, F_Y_record, F_Z_record, 
       F_north_record, F_east_record, F_down_record, 
-
+      
+      // added to uiuc_map_record5.cpp
       M_l_aero_record, M_m_aero_record, M_n_aero_record, 
       M_l_engine_record, M_m_engine_record, M_n_engine_record, 
       M_l_gear_record, M_m_gear_record, M_n_gear_record, 
       M_l_rp_record, M_m_rp_record, M_n_rp_record,
-
+      M_l_cg_record, M_m_cg_record, M_n_cg_record,
+
+      // added to uiuc_map_record5.cpp
+      flapper_freq_record, flapper_phi_record,
+      flapper_phi_deg_record, flapper_Lift_record, flapper_Thrust_record,
+      flapper_Inertia_record, flapper_Moment_record,
+
+      // added to uiuc_map_record5.cpp
+      debug1_record, 
+      debug2_record, 
+      debug3_record,
+      V_down_fpm_record,
+      eta_q_record,
+      rpm_record,
+      elevator_sas_deg_record,
+      aileron_sas_deg_record,
+      rudder_sas_deg_record,
+      w_induced_record,
+      downwashAngle_deg_record,
+      alphaTail_deg_record,
+      gammaWing_record,
+      LD_record,
+      gload_record,
+      gyroMomentQ_record,
+      gyroMomentR_record,
+
+      // added to uiuc_map_record5.cpp
+      Gear_handle_record, gear_cmd_norm_record, gear_pos_norm_record,
+
+      // added to uiuc_map_record5.cpp
+      debug4_record, 
+      debug5_record, 
+      debug6_record,
+      debug7_record, 
+      debug8_record, 
+      debug9_record,
+      debug10_record,
+
+      // added to uiuc_map_record6.cpp
+      CL_clean_record, CL_iced_record,
+      CD_clean_record, CD_iced_record,
+      Cm_clean_record, Cm_iced_record,
+      Ch_clean_record, Ch_iced_record,
+      Cl_clean_record, Cl_iced_record,
+      Cn_clean_record, Cn_iced_record,
       CLclean_wing_record, CLiced_wing_record, 
       CLclean_tail_record, CLiced_tail_record, 
       Lift_clean_wing_record, Lift_iced_wing_record, 
@@ -361,10 +560,39 @@ enum {Simtime_record = 16000, dt_record,
       beta_flow_iced_tail_record, beta_flow_iced_tail_deg_record, 
       Dbeta_flow_wing_record, Dbeta_flow_wing_deg_record, 
       Dbeta_flow_tail_record, Dbeta_flow_tail_deg_record, 
-      pct_beta_flow_wing_record, pct_beta_flow_tail_record};
+      pct_beta_flow_wing_record, pct_beta_flow_tail_record, eta_ice_record,
+      eta_wing_right_record, eta_wing_left_record, eta_tail_record,
+      delta_CL_record, delta_CD_record, delta_Cm_record, delta_Cl_record,
+      delta_Cn_record,
+
+      // added to uiuc_map_record6.cpp
+      boot_cycle_tail_record, boot_cycle_wing_left_record,
+      boot_cycle_wing_right_record, autoIPS_tail_record, 
+      autoIPS_wing_left_record, autoIPS_wing_right_record,
+      eps_pitch_input_record, eps_alpha_max_record, eps_pitch_max_record, 
+      eps_pitch_min_record, eps_roll_max_record, eps_thrust_min_record, 
+      eps_flap_max_record, eps_airspeed_max_record, eps_airspeed_min_record,
+      tactilefadefI_record,
+
+      // added to uiuc_map_record6.cpp
+      ap_pah_on_record, ap_alh_on_record, ap_Theta_ref_deg_record,
+      ap_Theta_ref_rad_record, ap_alt_ref_ft_record, trigger_on_record,
+      ap_rah_on_record, ap_Phi_ref_rad_record, ap_Phi_ref_deg_record,
+      ap_hh_on_record, ap_Psi_ref_rad_record, ap_Psi_ref_deg_record,
+      trigger_num_record, trigger_toggle_record, trigger_counter_record,
+
+      // added to uiuc_map_record6.cpp
+      T_local_to_body_11_record, T_local_to_body_12_record,
+      T_local_to_body_13_record, T_local_to_body_21_record,
+      T_local_to_body_22_record, T_local_to_body_23_record,
+      T_local_to_body_31_record, T_local_to_body_32_record,
+      T_local_to_body_33_record};
+
 
 // misc ======= Miscellaneous inputs
-enum {simpleHingeMomentCoef_flag = 17000, dfTimefdf_flag};
+// added to uiuc_map_misc.cpp
+enum {simpleHingeMomentCoef_flag = 17000, flapper_flag,
+      flapper_phi_init_flag};
 
 //321654
 // fog ======== Fog field quantities
@@ -402,7 +630,7 @@ struct AIRCRAFT
 #define  recordParts        aircraft_->recordParts
   
   /*= Keywords (token1) ===========================================*/
-  map <string,int>      Keyword_map;
+  std::map <string,int>      Keyword_map;
 #define      Keyword_map         aircraft_->Keyword_map       
 
   double CD, CX, CL, CZ, Cm, CY, Cl, Cn;
@@ -437,17 +665,53 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* init ========== Initial values for equations of motion =======*/
 
-  map <string,int> init_map;
-#define      init_map            aircraft_->init_map          
+  std::map <string,int> init_map;
+#define      init_map          aircraft_->init_map          
 
   int recordRate;
 #define recordRate             aircraft_->recordRate
   double recordStartTime;
 #define recordStartTime        aircraft_->recordStartTime
+  bool use_V_rel_wind_2U;
+#define use_V_rel_wind_2U      aircraft_->use_V_rel_wind_2U
   bool nondim_rate_V_rel_wind;
 #define nondim_rate_V_rel_wind aircraft_->nondim_rate_V_rel_wind
+  bool use_abs_U_body_2U;
+#define use_abs_U_body_2U      aircraft_->use_abs_U_body_2U
   double dyn_on_speed;
 #define dyn_on_speed           aircraft_->dyn_on_speed
+  double dyn_on_speed_zero;
+#define dyn_on_speed_zero      aircraft_->dyn_on_speed_zero
+  bool use_dyn_on_speed_curve1;
+#define use_dyn_on_speed_curve1 aircraft_->use_dyn_on_speed_curve1
+
+  bool use_Alpha_dot_on_speed;
+#define use_Alpha_dot_on_speed  aircraft_->use_Alpha_dot_on_speed
+  double Alpha_dot_on_speed;
+#define Alpha_dot_on_speed      aircraft_->Alpha_dot_on_speed
+
+  bool use_gamma_horiz_on_speed;
+#define use_gamma_horiz_on_speed aircraft_->use_gamma_horiz_on_speed
+  double gamma_horiz_on_speed;
+#define gamma_horiz_on_speed     aircraft_->gamma_horiz_on_speed
+
+
+  bool b_downwashMode;
+#define b_downwashMode          aircraft_->b_downwashMode
+  int downwashMode;
+#define downwashMode            aircraft_->downwashMode
+  double downwashCoef;
+#define downwashCoef            aircraft_->downwashCoef
+  double gammaWing;
+#define gammaWing               aircraft_->gammaWing
+  double downwash;
+#define downwash                aircraft_->downwash
+  double downwashAngle;
+#define downwashAngle           aircraft_->downwashAngle
+  double alphaTail;
+#define alphaTail               aircraft_->alphaTail
+
+
   bool P_body_init_true;
   double P_body_init;
 #define P_body_init_true       aircraft_->P_body_init_true
@@ -492,28 +756,39 @@ struct AIRCRAFT
   double W_body_init;
 #define W_body_init_true       aircraft_->W_body_init_true
 #define W_body_init            aircraft_->W_body_init
-
+  bool trim_case_2;
+#define trim_case_2            aircraft_->trim_case_2
+  bool use_uiuc_network;
+  string server_IP;
+  int port_num;
+#define use_uiuc_network       aircraft_->use_uiuc_network
+#define server_IP              aircraft_->server_IP
+#define port_num               aircraft_->port_num
+  bool icing_demo;
+#define icing_demo             aircraft_->icing_demo
+  bool outside_control;
+#define outside_control        aircraft_->outside_control
 
   /* Variables (token2) ===========================================*/
   /* geometry ====== Aircraft-specific geometric quantities =======*/
   
-  map <string,int> geometry_map;
+  std::map <string,int> geometry_map;
 #define      geometry_map        aircraft_->geometry_map       
   
-  double bw, cbar, Sw, ih, bh, ch, Sh;
+  double bw, cbar, Sw, ih, bh, chord_h, Sh;
 #define bw   aircraft_->bw
 #define cbar aircraft_->cbar
 #define Sw   aircraft_->Sw       
 #define ih   aircraft_->ih
 #define bh   aircraft_->bh
-#define ch   aircraft_->ch
+#define chord_h   aircraft_->chord_h
 #define Sh   aircraft_->Sh
 
   
   /* Variables (token2) ===========================================*/
   /* controlSurface  Control surface deflections and properties ===*/
   
-  map <string,int> controlSurface_map;
+  std::map <string,int> controlSurface_map;
 #define      controlSurface_map  aircraft_->controlSurface_map
   
   double demax, demin;
@@ -530,8 +805,8 @@ struct AIRCRAFT
 #define aileron           aircraft_->aileron
 #define elevator          aircraft_->elevator
 #define rudder            aircraft_->rudder
-  double flap;
-#define flap              aircraft_->flap
+  //  double flap;
+  //#define flap              aircraft_->flap
 
   bool set_Long_trim, zero_Long_trim;
   double Long_trim_constant;
@@ -563,8 +838,8 @@ struct AIRCRAFT
 
   bool elevator_input;
   string elevator_input_file;
-  double elevator_input_timeArray[1500];
-  double elevator_input_deArray[1500];
+  double elevator_input_timeArray[7500];
+  double elevator_input_deArray[7500];
   int elevator_input_ntime;
   double elevator_input_startTime;
 #define elevator_input             aircraft_->elevator_input
@@ -589,8 +864,8 @@ struct AIRCRAFT
 
   bool rudder_input;
   string rudder_input_file;
-  double rudder_input_timeArray[1500];
-  double rudder_input_drArray[1500];
+  double rudder_input_timeArray[500];
+  double rudder_input_drArray[500];
   int rudder_input_ntime;
   double rudder_input_startTime;
 #define rudder_input             aircraft_->rudder_input
@@ -618,11 +893,89 @@ struct AIRCRAFT
   double flap_max, flap_rate;
 #define flap_max                 aircraft_->flap_max
 #define flap_rate                aircraft_->flap_rate
+  bool use_flaps;
+#define use_flaps                aircraft_->use_flaps
+
+  double spoiler_max, spoiler_rate;
+#define spoiler_max                 aircraft_->spoiler_max
+#define spoiler_rate                aircraft_->spoiler_rate
+  bool use_spoilers;
+#define use_spoilers                aircraft_->use_spoilers
+
+
+  bool flap_pos_input;
+  string flap_pos_input_file;
+  double flap_pos_input_timeArray[500];
+  double flap_pos_input_dfArray[500];
+  int flap_pos_input_ntime;
+  double flap_pos_input_startTime;
+#define flap_pos_input             aircraft_->flap_pos_input
+#define flap_pos_input_file        aircraft_->flap_pos_input_file
+#define flap_pos_input_timeArray   aircraft_->flap_pos_input_timeArray
+#define flap_pos_input_dfArray     aircraft_->flap_pos_input_dfArray
+#define flap_pos_input_ntime       aircraft_->flap_pos_input_ntime
+#define flap_pos_input_startTime   aircraft_->flap_pos_input_startTime
+
+
+  // SAS system: pitch, roll and yaw damping  MSS
+  double elevator_sas_KQ;
+  double elevator_sas_max;
+  double elevator_sas_min;
+  double elevator_stick_gain;
+  double aileron_sas_KP;
+  double aileron_sas_max;
+  double aileron_stick_gain;
+  double rudder_sas_KR;
+  double rudder_sas_max;
+  double rudder_stick_gain;
+
+
+
+#define elevator_sas_KQ             aircraft_->elevator_sas_KQ
+#define elevator_sas_max            aircraft_->elevator_sas_max
+#define elevator_sas_min            aircraft_->elevator_sas_min
+#define elevator_stick_gain         aircraft_->elevator_stick_gain
+#define aileron_sas_KP              aircraft_->aileron_sas_KP
+#define aileron_sas_max             aircraft_->aileron_sas_max
+#define aileron_stick_gain          aircraft_->aileron_stick_gain
+#define rudder_sas_KR               aircraft_->rudder_sas_KR
+#define rudder_sas_max              aircraft_->rudder_sas_max
+#define rudder_stick_gain           aircraft_->rudder_stick_gain
+
+  double elevator_sas;
+#define elevator_sas                aircraft_->elevator_sas
+  double aileron_sas;
+#define aileron_sas                 aircraft_->aileron_sas
+  double rudder_sas;
+#define rudder_sas                  aircraft_->rudder_sas
+
+  bool use_elevator_sas_type1;
+#define use_elevator_sas_type1      aircraft_->use_elevator_sas_type1
+  bool use_elevator_sas_max;
+#define use_elevator_sas_max        aircraft_->use_elevator_sas_max
+  bool use_elevator_sas_min;
+#define use_elevator_sas_min        aircraft_->use_elevator_sas_min
+  bool use_elevator_stick_gain;
+#define use_elevator_stick_gain     aircraft_->use_elevator_stick_gain
+  bool use_aileron_sas_type1;
+#define use_aileron_sas_type1       aircraft_->use_aileron_sas_type1
+  bool use_aileron_sas_max;
+#define use_aileron_sas_max         aircraft_->use_aileron_sas_max
+  bool use_aileron_stick_gain;
+#define use_aileron_stick_gain      aircraft_->use_aileron_stick_gain
+  bool use_rudder_sas_type1;
+#define use_rudder_sas_type1        aircraft_->use_rudder_sas_type1
+  bool use_rudder_sas_max;
+#define use_rudder_sas_max          aircraft_->use_rudder_sas_max
+  bool use_rudder_stick_gain;
+#define use_rudder_stick_gain       aircraft_->use_rudder_stick_gain
+
+
 
   /* Variables (token2) ===========================================*/
   /* controlsMixer = Control mixer ================================*/
   
-  map <string,int> controlsMixer_map;
+  std::map <string,int> controlsMixer_map;
 #define      controlsMixer_map  aircraft_->controlsMixer_map
   
   double nomix;
@@ -632,21 +985,53 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* mass =========== Aircraft-specific mass properties ===========*/
   
-  map <string,int> mass_map;
+  std::map <string,int> mass_map;
 #define      mass_map            aircraft_->mass_map
 
   double Weight;
 #define Weight  aircraft_->Weight
 
+  double Mass_appMass_ratio;
+#define Mass_appMass_ratio aircraft_->Mass_appMass_ratio
+  double I_xx_appMass_ratio;
+#define I_xx_appMass_ratio aircraft_->I_xx_appMass_ratio
+  double I_yy_appMass_ratio;
+#define I_yy_appMass_ratio aircraft_->I_yy_appMass_ratio
+  double I_zz_appMass_ratio;
+#define I_zz_appMass_ratio aircraft_->I_zz_appMass_ratio
+  double Mass_appMass;
+#define Mass_appMass aircraft_->Mass_appMass
+  double I_xx_appMass;
+#define I_xx_appMass aircraft_->I_xx_appMass
+  double I_yy_appMass;
+#define I_yy_appMass aircraft_->I_yy_appMass
+  double I_zz_appMass;
+#define I_zz_appMass aircraft_->I_zz_appMass
 
   /* Variables (token2) ===========================================*/
   /* engine ======== Propulsion data ==============================*/
   
-  map <string,int> engine_map;
+  std::map <string,int> engine_map;
 #define      engine_map            aircraft_->engine_map          
   
   double simpleSingleMaxThrust;
 #define simpleSingleMaxThrust  aircraft_->simpleSingleMaxThrust
+
+  bool simpleSingleModel;
+#define simpleSingleModel  aircraft_->simpleSingleModel
+  double t_v0;
+#define t_v0  aircraft_->t_v0
+  double dtdv_t0;
+#define dtdv_t0  aircraft_->dtdv_t0
+  double v_t0;
+#define v_t0  aircraft_->v_t0
+  double dtdvvt;
+#define dtdvvt  aircraft_->dtdvvt
+
+  double tc, induced, eta_q;
+#define tc      aircraft_->tc
+#define induced aircraft_->induced
+#define eta_q   aircraft_->eta_q
   
   bool Throttle_pct_input;
   string Throttle_pct_input_file;
@@ -660,22 +1045,135 @@ struct AIRCRAFT
 #define Throttle_pct_input_dTArray    aircraft_->Throttle_pct_input_dTArray
 #define Throttle_pct_input_ntime      aircraft_->Throttle_pct_input_ntime
 #define Throttle_pct_input_startTime  aircraft_->Throttle_pct_input_startTime
+  bool gyroForce_Q_body, gyroForce_R_body;
+  double minOmega, maxOmega, minOmegaRPM, maxOmegaRPM, engineOmega, polarInertia;
+#define gyroForce_Q_body              aircraft_->gyroForce_Q_body
+#define gyroForce_R_body              aircraft_->gyroForce_R_body
+#define minOmega                      aircraft_->minOmega
+#define maxOmega                      aircraft_->maxOmega
+#define minOmegaRPM                   aircraft_->minOmegaRPM
+#define maxOmegaRPM                   aircraft_->maxOmegaRPM
+#define engineOmega                   aircraft_->engineOmega
+#define polarInertia                  aircraft_->polarInertia
+
+  // propeller slipstream effects
+  bool b_slipstreamEffects;
+  double propDia;
+  double eta_q_Cm_q, eta_q_Cm_q_fac;
+  double eta_q_Cm_adot, eta_q_Cm_adot_fac;
+  double eta_q_Cmfade, eta_q_Cmfade_fac;
+  double eta_q_Cm_de, eta_q_Cm_de_fac;
+  double eta_q_Cl_beta, eta_q_Cl_beta_fac;
+  double eta_q_Cl_p, eta_q_Cl_p_fac;
+  double eta_q_Cl_r, eta_q_Cl_r_fac;
+  double eta_q_Cl_dr, eta_q_Cl_dr_fac;
+  double eta_q_CY_beta, eta_q_CY_beta_fac;
+  double eta_q_CY_p, eta_q_CY_p_fac;
+  double eta_q_CY_r, eta_q_CY_r_fac;
+  double eta_q_CY_dr, eta_q_CY_dr_fac;
+  double eta_q_Cn_beta, eta_q_Cn_beta_fac;
+  double eta_q_Cn_p, eta_q_Cn_p_fac;
+  double eta_q_Cn_r, eta_q_Cn_r_fac;
+  double eta_q_Cn_dr, eta_q_Cn_dr_fac;
+
+#define b_slipstreamEffects  aircraft_->b_slipstreamEffects
+#define propDia              aircraft_->propDia
+#define eta_q_Cm_q           aircraft_->eta_q_Cm_q
+#define eta_q_Cm_q_fac       aircraft_->eta_q_Cm_q_fac
+#define eta_q_Cm_adot        aircraft_->eta_q_Cm_adot
+#define eta_q_Cm_adot_fac    aircraft_->eta_q_Cm_adot_fac
+#define eta_q_Cmfade         aircraft_->eta_q_Cmfade
+#define eta_q_Cmfade_fac     aircraft_->eta_q_Cmfade_fac
+#define eta_q_Cm_de          aircraft_->eta_q_Cm_de
+#define eta_q_Cm_de_fac      aircraft_->eta_q_Cm_de_fac
+#define eta_q_Cl_beta        aircraft_->eta_q_Cl_beta
+#define eta_q_Cl_beta_fac    aircraft_->eta_q_Cl_beta_fac
+#define eta_q_Cl_p           aircraft_->eta_q_Cl_p
+#define eta_q_Cl_p_fac       aircraft_->eta_q_Cl_p_fac
+#define eta_q_Cl_r           aircraft_->eta_q_Cl_r
+#define eta_q_Cl_r_fac       aircraft_->eta_q_Cl_r_fac
+#define eta_q_Cl_dr          aircraft_->eta_q_Cl_dr
+#define eta_q_Cl_dr_fac      aircraft_->eta_q_Cl_dr_fac
+#define eta_q_CY_beta        aircraft_->eta_q_CY_beta
+#define eta_q_CY_beta_fac    aircraft_->eta_q_CY_beta_fac
+#define eta_q_CY_p           aircraft_->eta_q_CY_p
+#define eta_q_CY_p_fac       aircraft_->eta_q_CY_p_fac
+#define eta_q_CY_r           aircraft_->eta_q_CY_r
+#define eta_q_CY_r_fac       aircraft_->eta_q_CY_r_fac
+#define eta_q_CY_dr          aircraft_->eta_q_CY_dr
+#define eta_q_CY_dr_fac      aircraft_->eta_q_CY_dr_fac
+#define eta_q_Cn_beta        aircraft_->eta_q_Cn_beta
+#define eta_q_Cn_beta_fac    aircraft_->eta_q_Cn_beta_fac
+#define eta_q_Cn_p           aircraft_->eta_q_Cn_p
+#define eta_q_Cn_p_fac       aircraft_->eta_q_Cn_p_fac
+#define eta_q_Cn_r           aircraft_->eta_q_Cn_r
+#define eta_q_Cn_r_fac       aircraft_->eta_q_Cn_r_fac
+#define eta_q_Cn_dr          aircraft_->eta_q_Cn_dr
+#define eta_q_Cn_dr_fac      aircraft_->eta_q_Cn_dr_fac
+
+
+  bool Xp_input;
+  string Xp_input_file;
+  double Xp_input_timeArray[5400];
+  double Xp_input_XpArray[5400];
+  int Xp_input_ntime;
+  double Xp_input_startTime;
+#define Xp_input            aircraft_->Xp_input
+#define Xp_input_file       aircraft_->Xp_input_file
+#define Xp_input_timeArray  aircraft_->Xp_input_timeArray
+#define Xp_input_XpArray    aircraft_->Xp_input_XpArray
+#define Xp_input_ntime      aircraft_->Xp_input_ntime
+#define Xp_input_startTime  aircraft_->Xp_input_startTime
+  bool Zp_input;
+  string Zp_input_file;
+  double Zp_input_timeArray[5400];
+  double Zp_input_ZpArray[5400];
+  int Zp_input_ntime;
+  double Zp_input_startTime;
+#define Zp_input            aircraft_->Zp_input
+#define Zp_input_file       aircraft_->Zp_input_file
+#define Zp_input_timeArray  aircraft_->Zp_input_timeArray
+#define Zp_input_ZpArray    aircraft_->Zp_input_ZpArray
+#define Zp_input_ntime      aircraft_->Zp_input_ntime
+#define Zp_input_startTime  aircraft_->Zp_input_startTime
+  bool Mp_input;
+  string Mp_input_file;
+  double Mp_input_timeArray[5400];
+  double Mp_input_MpArray[5400];
+  int Mp_input_ntime;
+  double Mp_input_startTime;
+#define Mp_input            aircraft_->Mp_input
+#define Mp_input_file       aircraft_->Mp_input_file
+#define Mp_input_timeArray  aircraft_->Mp_input_timeArray
+#define Mp_input_MpArray    aircraft_->Mp_input_MpArray
+#define Mp_input_ntime      aircraft_->Mp_input_ntime
+#define Mp_input_startTime  aircraft_->Mp_input_startTime
 
 
   /* Variables (token2) ===========================================*/
   /* CD ============ Aerodynamic x-force quantities (longitudinal) */
   
-  map <string,int> CD_map;
+  std::map <string,int> CD_map;
 #define      CD_map              aircraft_->CD_map            
   
-  double CDo, CDK, CD_a, CD_adot, CD_q, CD_ih, CD_de;
+  double CDo, CDK, CLK, CD_a, CD_adot, CD_q, CD_ih, CD_de, CD_dr, CD_da, CD_beta;
+  double CD_df, CD_ds, CD_dg;
 #define CDo      aircraft_->CDo
 #define CDK      aircraft_->CDK
+#define CLK      aircraft_->CLK
 #define CD_a     aircraft_->CD_a
 #define CD_adot  aircraft_->CD_adot
 #define CD_q     aircraft_->CD_q
 #define CD_ih    aircraft_->CD_ih
 #define CD_de    aircraft_->CD_de
+#define CD_dr    aircraft_->CD_dr
+#define CD_da    aircraft_->CD_da
+#define CD_beta  aircraft_->CD_beta
+#define CD_df    aircraft_->CD_df
+#define CD_ds    aircraft_->CD_ds
+#define CD_dg    aircraft_->CD_dg
+  bool b_CLK;
+#define b_CLK      aircraft_->b_CLK
   string CDfa;
   double CDfa_aArray[100];
   double CDfa_CDArray[100];
@@ -819,17 +1317,26 @@ struct AIRCRAFT
 #define CXfaqf_nq_nice       aircraft_->CXfaqf_nq_nice
 #define CXfaqf_qArray_nice   aircraft_->CXfaqf_qArray_nice
 #define CXfaqf_aArray_nice   aircraft_->CXfaqf_aArray_nice
-  double CDo_save, CDK_save, CD_a_save, CD_adot_save, CD_q_save, CD_ih_save;
-  double CD_de_save, CXo_save, CXK_save, CX_a_save, CX_a2_save, CX_a3_save;
+  double CDo_save, CDK_save, CLK_save, CD_a_save, CD_adot_save, CD_q_save, CD_ih_save;
+  double CD_de_save, CD_dr_save, CD_da_save, CD_beta_save;
+  double CD_df_save, CD_ds_save, CD_dg_save;
+  double CXo_save, CXK_save, CX_a_save, CX_a2_save, CX_a3_save;
   double CX_adot_save, CX_q_save, CX_de_save;
   double CX_dr_save, CX_df_save, CX_adf_save;
 #define CDo_save             aircraft_->CDo_save  
 #define CDK_save             aircraft_->CDK_save  
+#define CLK_save             aircraft_->CLK_save  
 #define CD_a_save            aircraft_->CD_a_save  
 #define CD_adot_save         aircraft_->CD_adot_save  
 #define CD_q_save            aircraft_->CD_q_save  
 #define CD_ih_save           aircraft_->CD_ih_save  
 #define CD_de_save           aircraft_->CD_de_save  
+#define CD_dr_save           aircraft_->CD_dr_save  
+#define CD_da_save           aircraft_->CD_da_save  
+#define CD_beta_save         aircraft_->CD_beta_save  
+#define CD_df_save           aircraft_->CD_df_save  
+#define CD_ds_save           aircraft_->CD_ds_save  
+#define CD_dg_save           aircraft_->CD_dg_save  
 #define CXo_save             aircraft_->CXo_save  
 #define CXK_save             aircraft_->CXK_save  
 #define CX_a_save            aircraft_->CX_a_save  
@@ -846,16 +1353,20 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* CL ============ Aerodynamic z-force quantities (longitudinal) */
   
-  map <string,int> CL_map;
+  std::map <string,int> CL_map;
 #define      CL_map              aircraft_->CL_map            
   
   double CLo, CL_a, CL_adot, CL_q, CL_ih, CL_de;
+  double CL_df, CL_ds, CL_dg;
 #define CLo      aircraft_->CLo
 #define CL_a     aircraft_->CL_a
 #define CL_adot  aircraft_->CL_adot
 #define CL_q     aircraft_->CL_q
 #define CL_ih    aircraft_->CL_ih
 #define CL_de    aircraft_->CL_de
+#define CL_df    aircraft_->CL_df
+#define CL_ds    aircraft_->CL_ds
+#define CL_dg    aircraft_->CL_dg
   string CLfa;
   double CLfa_aArray[100];
   double CLfa_CLArray[100];
@@ -1000,6 +1511,7 @@ struct AIRCRAFT
 #define CZfaqf_aArray_nice    aircraft_->CZfaqf_aArray_nice
   double CLo_save, CL_a_save, CL_adot_save; 
   double CL_q_save, CL_ih_save, CL_de_save;
+  double CL_df_save, CL_ds_save, CL_dg_save;
   double CZo_save, CZ_a_save, CZ_a2_save;
   double CZ_a3_save, CZ_adot_save, CZ_q_save;
   double CZ_de_save, CZ_deb2_save, CZ_df_save;
@@ -1010,6 +1522,9 @@ struct AIRCRAFT
 #define CL_q_save             aircraft_->CL_q_save
 #define CL_ih_save            aircraft_->CL_ih_save
 #define CL_de_save            aircraft_->CL_de_save
+#define CL_df_save            aircraft_->CL_df_save
+#define CL_ds_save            aircraft_->CL_ds_save
+#define CL_dg_save            aircraft_->CL_dg_save
 #define CZo_save              aircraft_->CZo_save
 #define CZ_a_save             aircraft_->CZ_a_save
 #define CZ_a2_save            aircraft_->CZ_a2_save
@@ -1025,11 +1540,12 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* Cm ============ Aerodynamic m-moment quantities (longitudinal) */
   
-  map <string,int> Cm_map;
+  std::map <string,int> Cm_map;
 #define      Cm_map              aircraft_->Cm_map            
   
   double Cmo, Cm_a, Cm_a2, Cm_adot, Cm_q;
-  double Cm_ih, Cm_de, Cm_b2, Cm_r, Cm_df;
+  double Cm_ih, Cm_de, Cm_b2, Cm_r;
+  double Cm_df, Cm_ds, Cm_dg;
 #define Cmo      aircraft_->Cmo
 #define Cm_a     aircraft_->Cm_a
 #define Cm_a2    aircraft_->Cm_a2
@@ -1040,6 +1556,8 @@ struct AIRCRAFT
 #define Cm_b2    aircraft_->Cm_b2
 #define Cm_r     aircraft_->Cm_r
 #define Cm_df    aircraft_->Cm_df
+#define Cm_ds    aircraft_->Cm_ds
+#define Cm_dg    aircraft_->Cm_dg
   string Cmfa;
   double Cmfa_aArray[100];
   double Cmfa_CmArray[100];
@@ -1064,6 +1582,12 @@ struct AIRCRAFT
 #define Cmfade_nAlphaArray aircraft_->Cmfade_nAlphaArray
 #define Cmfade_nde         aircraft_->Cmfade_nde
 #define CmfadeI            aircraft_->CmfadeI
+  
+  // induced flow in slipstream impinging on tail
+  double w_induced;
+#define w_induced          aircraft_->w_induced
+  
+  
   string Cmfdf;
   double Cmfdf_dfArray[100];
   double Cmfdf_CmArray[100];
@@ -1161,7 +1685,8 @@ struct AIRCRAFT
 #define Cmfaqf_qArray_nice   aircraft_->Cmfaqf_qArray_nice
 #define Cmfaqf_aArray_nice   aircraft_->Cmfaqf_aArray_nice
   double Cmo_save, Cm_a_save, Cm_a2_save, Cm_adot_save, Cm_q_save, Cm_ih_save;
-  double Cm_de_save, Cm_b2_save, Cm_r_save, Cm_df_save;
+  double Cm_de_save, Cm_b2_save, Cm_r_save;
+  double Cm_df_save, Cm_ds_save, Cm_dg_save;
 #define Cmo_save             aircraft_->Cmo_save
 #define Cm_a_save            aircraft_->Cm_a_save
 #define Cm_a2_save           aircraft_->Cm_a2_save
@@ -1172,12 +1697,14 @@ struct AIRCRAFT
 #define Cm_b2_save           aircraft_->Cm_b2_save
 #define Cm_r_save            aircraft_->Cm_r_save
 #define Cm_df_save           aircraft_->Cm_df_save
+#define Cm_ds_save           aircraft_->Cm_ds_save
+#define Cm_dg_save           aircraft_->Cm_dg_save
   
 
   /* Variables (token2) ===========================================*/
   /* CY ============ Aerodynamic y-force quantities (lateral) =====*/
   
-  map <string,int> CY_map;
+  std::map <string,int> CY_map;
 #define      CY_map              aircraft_->CY_map            
   
   double CYo, CY_beta, CY_p, CY_r, CY_da, CY_dr, CY_dra, CY_bdot;
@@ -1352,7 +1879,7 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* Cl ============ Aerodynamic l-moment quantities (lateral) ====*/
   
-  map <string,int> Cl_map;
+  std::map <string,int> Cl_map;
 #define      Cl_map              aircraft_->Cl_map            
   
   double Clo, Cl_beta, Cl_p, Cl_r, Cl_da, Cl_dr, Cl_daa;
@@ -1525,7 +2052,7 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* Cn ============ Aerodynamic n-moment quantities (lateral) ====*/
   
-  map <string,int> Cn_map;
+  std::map <string,int> Cn_map;
 #define      Cn_map              aircraft_->Cn_map
 
   double Cno, Cn_beta, Cn_p, Cn_r, Cn_da, Cn_dr, Cn_q, Cn_b3;
@@ -1700,7 +2227,7 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* gear ========== Landing gear model quantities ================*/
   
-  map <string,int> gear_map;
+  std::map <string,int> gear_map;
   
 #define      gear_map              aircraft_->gear_map
 #define MAX_GEAR 16
@@ -1716,12 +2243,17 @@ struct AIRCRAFT
 #define kgear aircraft_->kgear
 #define muGear aircraft_->muGear
 #define strutLength aircraft_->strutLength
+  double gear_max, gear_rate;
+#define gear_max                 aircraft_->gear_max
+#define gear_rate                aircraft_->gear_rate
+  bool use_gear;
+#define use_gear                 aircraft_->use_gear
   
 
   /* Variables (token2) ===========================================*/
   /* ice =========== Ice model quantities ======================== */
   
-  map <string,int> ice_map;
+  std::map <string,int> ice_map;
 #define      ice_map              aircraft_->ice_map            
 
   bool ice_model, ice_on, beta_model;
@@ -1891,13 +2423,372 @@ struct AIRCRAFT
 #define Cn_dr_clean    aircraft_->Cn_dr_clean
 #define Cn_q_clean     aircraft_->Cn_q_clean
 #define Cn_b3_clean    aircraft_->Cn_b3_clean
-
+  double bootTime[20];
+  int    bootindex;
+  bool   bootTrue[20];
+#define bootTime       aircraft_->bootTime  
+#define bootindex      aircraft_->bootindex 
+#define bootTrue       aircraft_->bootTrue
+  bool eta_from_file;
+#define eta_from_file             aircraft_->eta_from_file
+  bool eta_wing_left_input;
+  string eta_wing_left_input_file;
+  double eta_wing_left_input_timeArray[100];
+  double eta_wing_left_input_daArray[100];
+  int eta_wing_left_input_ntime;
+  double eta_wing_left_input_startTime;
+#define eta_wing_left_input           aircraft_->eta_wing_left_input
+#define eta_wing_left_input_file      aircraft_->eta_wing_left_input_file
+#define eta_wing_left_input_timeArray aircraft_->eta_wing_left_input_timeArray
+#define eta_wing_left_input_daArray   aircraft_->eta_wing_left_input_daArray
+#define eta_wing_left_input_ntime     aircraft_->eta_wing_left_input_ntime
+#define eta_wing_left_input_startTime aircraft_->eta_wing_left_input_startTime
+  bool eta_wing_right_input;
+  string eta_wing_right_input_file;
+  double eta_wing_right_input_timeArray[100];
+  double eta_wing_right_input_daArray[100];
+  int eta_wing_right_input_ntime;
+  double eta_wing_right_input_startTime;
+#define eta_wing_right_input           aircraft_->eta_wing_right_input
+#define eta_wing_right_input_file      aircraft_->eta_wing_right_input_file
+#define eta_wing_right_input_timeArray aircraft_->eta_wing_right_input_timeArray
+#define eta_wing_right_input_daArray   aircraft_->eta_wing_right_input_daArray
+#define eta_wing_right_input_ntime     aircraft_->eta_wing_right_input_ntime
+#define eta_wing_right_input_startTime aircraft_->eta_wing_right_input_startTime
+  bool eta_tail_input;
+  string eta_tail_input_file;
+  double eta_tail_input_timeArray[100];
+  double eta_tail_input_daArray[100];
+  int eta_tail_input_ntime;
+  double eta_tail_input_startTime;
+#define eta_tail_input           aircraft_->eta_tail_input
+#define eta_tail_input_file      aircraft_->eta_tail_input_file
+#define eta_tail_input_timeArray aircraft_->eta_tail_input_timeArray
+#define eta_tail_input_daArray   aircraft_->eta_tail_input_daArray
+#define eta_tail_input_ntime     aircraft_->eta_tail_input_ntime
+#define eta_tail_input_startTime aircraft_->eta_tail_input_startTime
+  bool demo_eps_alpha_max;
+  string demo_eps_alpha_max_file;
+  double demo_eps_alpha_max_timeArray[100];
+  double demo_eps_alpha_max_daArray[100];
+  int demo_eps_alpha_max_ntime;
+  double demo_eps_alpha_max_startTime;
+#define demo_eps_alpha_max           aircraft_->demo_eps_alpha_max
+#define demo_eps_alpha_max_file      aircraft_->demo_eps_alpha_max_file
+#define demo_eps_alpha_max_timeArray aircraft_->demo_eps_alpha_max_timeArray
+#define demo_eps_alpha_max_daArray   aircraft_->demo_eps_alpha_max_daArray
+#define demo_eps_alpha_max_ntime     aircraft_->demo_eps_alpha_max_ntime
+#define demo_eps_alpha_max_startTime aircraft_->demo_eps_alpha_max_startTime
+  bool demo_eps_pitch_max;
+  string demo_eps_pitch_max_file;
+  double demo_eps_pitch_max_timeArray[100];
+  double demo_eps_pitch_max_daArray[100];
+  int demo_eps_pitch_max_ntime;
+  double demo_eps_pitch_max_startTime;
+#define demo_eps_pitch_max           aircraft_->demo_eps_pitch_max
+#define demo_eps_pitch_max_file      aircraft_->demo_eps_pitch_max_file
+#define demo_eps_pitch_max_timeArray aircraft_->demo_eps_pitch_max_timeArray
+#define demo_eps_pitch_max_daArray   aircraft_->demo_eps_pitch_max_daArray
+#define demo_eps_pitch_max_ntime     aircraft_->demo_eps_pitch_max_ntime
+#define demo_eps_pitch_max_startTime aircraft_->demo_eps_pitch_max_startTime
+  bool demo_eps_pitch_min;
+  string demo_eps_pitch_min_file;
+  double demo_eps_pitch_min_timeArray[100];
+  double demo_eps_pitch_min_daArray[100];
+  int demo_eps_pitch_min_ntime;
+  double demo_eps_pitch_min_startTime;
+#define demo_eps_pitch_min           aircraft_->demo_eps_pitch_min
+#define demo_eps_pitch_min_file      aircraft_->demo_eps_pitch_min_file
+#define demo_eps_pitch_min_timeArray aircraft_->demo_eps_pitch_min_timeArray
+#define demo_eps_pitch_min_daArray   aircraft_->demo_eps_pitch_min_daArray
+#define demo_eps_pitch_min_ntime     aircraft_->demo_eps_pitch_min_ntime
+#define demo_eps_pitch_min_startTime aircraft_->demo_eps_pitch_min_startTime
+  bool demo_eps_roll_max;
+  string demo_eps_roll_max_file;
+  double demo_eps_roll_max_timeArray[10];
+  double demo_eps_roll_max_daArray[10];
+  int demo_eps_roll_max_ntime;
+  double demo_eps_roll_max_startTime;
+#define demo_eps_roll_max           aircraft_->demo_eps_roll_max
+#define demo_eps_roll_max_file      aircraft_->demo_eps_roll_max_file
+#define demo_eps_roll_max_timeArray aircraft_->demo_eps_roll_max_timeArray
+#define demo_eps_roll_max_daArray   aircraft_->demo_eps_roll_max_daArray
+#define demo_eps_roll_max_ntime     aircraft_->demo_eps_roll_max_ntime
+#define demo_eps_roll_max_startTime aircraft_->demo_eps_roll_max_startTime
+  bool demo_eps_thrust_min;
+  string demo_eps_thrust_min_file;
+  double demo_eps_thrust_min_timeArray[100];
+  double demo_eps_thrust_min_daArray[100];
+  int demo_eps_thrust_min_ntime;
+  double demo_eps_thrust_min_startTime;
+#define demo_eps_thrust_min           aircraft_->demo_eps_thrust_min
+#define demo_eps_thrust_min_file      aircraft_->demo_eps_thrust_min_file
+#define demo_eps_thrust_min_timeArray aircraft_->demo_eps_thrust_min_timeArray
+#define demo_eps_thrust_min_daArray   aircraft_->demo_eps_thrust_min_daArray
+#define demo_eps_thrust_min_ntime     aircraft_->demo_eps_thrust_min_ntime
+#define demo_eps_thrust_min_startTime aircraft_->demo_eps_thrust_min_startTime
+  bool demo_eps_airspeed_max;
+  string demo_eps_airspeed_max_file;
+  double demo_eps_airspeed_max_timeArray[10];
+  double demo_eps_airspeed_max_daArray[10];
+  int demo_eps_airspeed_max_ntime;
+  double demo_eps_airspeed_max_startTime;
+#define demo_eps_airspeed_max           aircraft_->demo_eps_airspeed_max
+#define demo_eps_airspeed_max_file      aircraft_->demo_eps_airspeed_max_file
+#define demo_eps_airspeed_max_timeArray aircraft_->demo_eps_airspeed_max_timeArray
+#define demo_eps_airspeed_max_daArray   aircraft_->demo_eps_airspeed_max_daArray
+#define demo_eps_airspeed_max_ntime     aircraft_->demo_eps_airspeed_max_ntime
+#define demo_eps_airspeed_max_startTime aircraft_->demo_eps_airspeed_max_startTime
+  bool demo_eps_airspeed_min;
+  string demo_eps_airspeed_min_file;
+  double demo_eps_airspeed_min_timeArray[100];
+  double demo_eps_airspeed_min_daArray[100];
+  int demo_eps_airspeed_min_ntime;
+  double demo_eps_airspeed_min_startTime;
+#define demo_eps_airspeed_min           aircraft_->demo_eps_airspeed_min
+#define demo_eps_airspeed_min_file      aircraft_->demo_eps_airspeed_min_file
+#define demo_eps_airspeed_min_timeArray aircraft_->demo_eps_airspeed_min_timeArray
+#define demo_eps_airspeed_min_daArray   aircraft_->demo_eps_airspeed_min_daArray
+#define demo_eps_airspeed_min_ntime     aircraft_->demo_eps_airspeed_min_ntime
+#define demo_eps_airspeed_min_startTime aircraft_->demo_eps_airspeed_min_startTime
+  bool demo_eps_flap_max;
+  string demo_eps_flap_max_file;
+  double demo_eps_flap_max_timeArray[10];
+  double demo_eps_flap_max_daArray[10];
+  int demo_eps_flap_max_ntime;
+  double demo_eps_flap_max_startTime;
+#define demo_eps_flap_max           aircraft_->demo_eps_flap_max
+#define demo_eps_flap_max_file      aircraft_->demo_eps_flap_max_file
+#define demo_eps_flap_max_timeArray aircraft_->demo_eps_flap_max_timeArray
+#define demo_eps_flap_max_daArray   aircraft_->demo_eps_flap_max_daArray
+#define demo_eps_flap_max_ntime     aircraft_->demo_eps_flap_max_ntime
+#define demo_eps_flap_max_startTime aircraft_->demo_eps_flap_max_startTime
+  bool demo_boot_cycle_tail;
+  string demo_boot_cycle_tail_file;
+  double demo_boot_cycle_tail_timeArray[100];
+  int demo_boot_cycle_tail_daArray[100];
+  int demo_boot_cycle_tail_ntime;
+  double demo_boot_cycle_tail_startTime;
+#define demo_boot_cycle_tail           aircraft_->demo_boot_cycle_tail
+#define demo_boot_cycle_tail_file      aircraft_->demo_boot_cycle_tail_file
+#define demo_boot_cycle_tail_timeArray aircraft_->demo_boot_cycle_tail_timeArray
+#define demo_boot_cycle_tail_daArray   aircraft_->demo_boot_cycle_tail_daArray
+#define demo_boot_cycle_tail_ntime     aircraft_->demo_boot_cycle_tail_ntime
+#define demo_boot_cycle_tail_startTime aircraft_->demo_boot_cycle_tail_startTime
+  bool demo_boot_cycle_wing_left;
+  string demo_boot_cycle_wing_left_file;
+  double demo_boot_cycle_wing_left_timeArray[100];
+  int demo_boot_cycle_wing_left_daArray[100];
+  int demo_boot_cycle_wing_left_ntime;
+  double demo_boot_cycle_wing_left_startTime;
+#define demo_boot_cycle_wing_left           aircraft_->demo_boot_cycle_wing_left
+#define demo_boot_cycle_wing_left_file      aircraft_->demo_boot_cycle_wing_left_file
+#define demo_boot_cycle_wing_left_timeArray aircraft_->demo_boot_cycle_wing_left_timeArray
+#define demo_boot_cycle_wing_left_daArray   aircraft_->demo_boot_cycle_wing_left_daArray
+#define demo_boot_cycle_wing_left_ntime     aircraft_->demo_boot_cycle_wing_left_ntime
+#define demo_boot_cycle_wing_left_startTime aircraft_->demo_boot_cycle_wing_left_startTime
+  bool demo_boot_cycle_wing_right;
+  string demo_boot_cycle_wing_right_file;
+  double demo_boot_cycle_wing_right_timeArray[100];
+  int demo_boot_cycle_wing_right_daArray[100];
+  int demo_boot_cycle_wing_right_ntime;
+  double demo_boot_cycle_wing_right_startTime;
+#define demo_boot_cycle_wing_right           aircraft_->demo_boot_cycle_wing_right
+#define demo_boot_cycle_wing_right_file      aircraft_->demo_boot_cycle_wing_right_file
+#define demo_boot_cycle_wing_right_timeArray aircraft_->demo_boot_cycle_wing_right_timeArray
+#define demo_boot_cycle_wing_right_daArray   aircraft_->demo_boot_cycle_wing_right_daArray
+#define demo_boot_cycle_wing_right_ntime     aircraft_->demo_boot_cycle_wing_right_ntime
+#define demo_boot_cycle_wing_right_startTime aircraft_->demo_boot_cycle_wing_right_startTime
+  bool demo_eps_pitch_input;
+  string demo_eps_pitch_input_file;
+  double demo_eps_pitch_input_timeArray[100];
+  int demo_eps_pitch_input_daArray[100];
+  int demo_eps_pitch_input_ntime;
+  double demo_eps_pitch_input_startTime;
+#define demo_eps_pitch_input           aircraft_->demo_eps_pitch_input
+#define demo_eps_pitch_input_file      aircraft_->demo_eps_pitch_input_file
+#define demo_eps_pitch_input_timeArray aircraft_->demo_eps_pitch_input_timeArray
+#define demo_eps_pitch_input_daArray   aircraft_->demo_eps_pitch_input_daArray
+#define demo_eps_pitch_input_ntime     aircraft_->demo_eps_pitch_input_ntime
+#define demo_eps_pitch_input_startTime aircraft_->demo_eps_pitch_input_startTime
+  bool tactilefadef;
+  double tactilefadef_aArray[30][100][100];
+  double tactilefadef_deArray[30][100];
+  double tactilefadef_tactileArray[30][100][100];
+  int tactilefadef_nAlphaArray[30][100];
+  int tactilefadef_nde[30];
+  double tactilefadef_fArray[30];
+  int tactilefadef_nf;
+  double tactilefadefI;
+  int tactilefadef_nice, tactilefadef_na_nice, tactilefadef_nde_nice;
+  double tactilefadef_deArray_nice[100];
+  double tactilefadef_aArray_nice[100];
+#define tactilefadef               aircraft_->tactilefadef
+#define tactilefadef_aArray        aircraft_->tactilefadef_aArray
+#define tactilefadef_deArray       aircraft_->tactilefadef_deArray
+#define tactilefadef_tactileArray  aircraft_->tactilefadef_tactileArray
+#define tactilefadef_nAlphaArray   aircraft_->tactilefadef_nAlphaArray
+#define tactilefadef_nde           aircraft_->tactilefadef_nde
+#define tactilefadef_fArray        aircraft_->tactilefadef_fArray
+#define tactilefadef_nf            aircraft_->tactilefadef_nf
+#define tactilefadefI              aircraft_->tactilefadefI
+#define tactilefadef_nice          aircraft_->tactilefadef_nice
+#define tactilefadef_na_nice       aircraft_->tactilefadef_na_nice
+#define tactilefadef_nde_nice      aircraft_->tactilefadef_nde_nice
+#define tactilefadef_deArray_nice  aircraft_->tactilefadef_deArray_nice
+#define tactilefadef_aArray_nice   aircraft_->tactilefadef_aArray_nice
+  int tactile_pitch;
+#define tactile_pitch              aircraft_->tactile_pitch
+  bool demo_ap_pah_on;
+  string demo_ap_pah_on_file;
+  double demo_ap_pah_on_timeArray[10];
+  int demo_ap_pah_on_daArray[10];
+  int demo_ap_pah_on_ntime;
+  double demo_ap_pah_on_startTime;
+#define demo_ap_pah_on           aircraft_->demo_ap_pah_on
+#define demo_ap_pah_on_file      aircraft_->demo_ap_pah_on_file
+#define demo_ap_pah_on_timeArray aircraft_->demo_ap_pah_on_timeArray
+#define demo_ap_pah_on_daArray   aircraft_->demo_ap_pah_on_daArray
+#define demo_ap_pah_on_ntime     aircraft_->demo_ap_pah_on_ntime
+#define demo_ap_pah_on_startTime aircraft_->demo_ap_pah_on_startTime
+  bool demo_ap_alh_on;
+  string demo_ap_alh_on_file;
+  double demo_ap_alh_on_timeArray[10];
+  int demo_ap_alh_on_daArray[10];
+  int demo_ap_alh_on_ntime;
+  double demo_ap_alh_on_startTime;
+#define demo_ap_alh_on           aircraft_->demo_ap_alh_on
+#define demo_ap_alh_on_file      aircraft_->demo_ap_alh_on_file
+#define demo_ap_alh_on_timeArray aircraft_->demo_ap_alh_on_timeArray
+#define demo_ap_alh_on_daArray   aircraft_->demo_ap_alh_on_daArray
+#define demo_ap_alh_on_ntime     aircraft_->demo_ap_alh_on_ntime
+#define demo_ap_alh_on_startTime aircraft_->demo_ap_alh_on_startTime
+  bool demo_ap_rah_on;
+  string demo_ap_rah_on_file;
+  double demo_ap_rah_on_timeArray[10];
+  int demo_ap_rah_on_daArray[10];
+  int demo_ap_rah_on_ntime;
+  double demo_ap_rah_on_startTime;
+#define demo_ap_rah_on           aircraft_->demo_ap_rah_on
+#define demo_ap_rah_on_file      aircraft_->demo_ap_rah_on_file
+#define demo_ap_rah_on_timeArray aircraft_->demo_ap_rah_on_timeArray
+#define demo_ap_rah_on_daArray   aircraft_->demo_ap_rah_on_daArray
+#define demo_ap_rah_on_ntime     aircraft_->demo_ap_rah_on_ntime
+#define demo_ap_rah_on_startTime aircraft_->demo_ap_rah_on_startTime
+  bool demo_ap_hh_on;
+  string demo_ap_hh_on_file;
+  double demo_ap_hh_on_timeArray[10];
+  int demo_ap_hh_on_daArray[10];
+  int demo_ap_hh_on_ntime;
+  double demo_ap_hh_on_startTime;
+#define demo_ap_hh_on           aircraft_->demo_ap_hh_on
+#define demo_ap_hh_on_file      aircraft_->demo_ap_hh_on_file
+#define demo_ap_hh_on_timeArray aircraft_->demo_ap_hh_on_timeArray
+#define demo_ap_hh_on_daArray   aircraft_->demo_ap_hh_on_daArray
+#define demo_ap_hh_on_ntime     aircraft_->demo_ap_hh_on_ntime
+#define demo_ap_hh_on_startTime aircraft_->demo_ap_hh_on_startTime
+  bool demo_ap_Theta_ref;
+  string demo_ap_Theta_ref_file;
+  double demo_ap_Theta_ref_timeArray[10];
+  double demo_ap_Theta_ref_daArray[10];
+  int demo_ap_Theta_ref_ntime;
+  double demo_ap_Theta_ref_startTime;
+#define demo_ap_Theta_ref           aircraft_->demo_ap_Theta_ref
+#define demo_ap_Theta_ref_file      aircraft_->demo_ap_Theta_ref_file
+#define demo_ap_Theta_ref_timeArray aircraft_->demo_ap_Theta_ref_timeArray
+#define demo_ap_Theta_ref_daArray   aircraft_->demo_ap_Theta_ref_daArray
+#define demo_ap_Theta_ref_ntime     aircraft_->demo_ap_Theta_ref_ntime
+#define demo_ap_Theta_ref_startTime aircraft_->demo_ap_Theta_ref_startTime
+  bool demo_ap_alt_ref;
+  string demo_ap_alt_ref_file;
+  double demo_ap_alt_ref_timeArray[10];
+  double demo_ap_alt_ref_daArray[10];
+  int demo_ap_alt_ref_ntime;
+  double demo_ap_alt_ref_startTime;
+#define demo_ap_alt_ref           aircraft_->demo_ap_alt_ref
+#define demo_ap_alt_ref_file      aircraft_->demo_ap_alt_ref_file
+#define demo_ap_alt_ref_timeArray aircraft_->demo_ap_alt_ref_timeArray
+#define demo_ap_alt_ref_daArray   aircraft_->demo_ap_alt_ref_daArray
+#define demo_ap_alt_ref_ntime     aircraft_->demo_ap_alt_ref_ntime
+#define demo_ap_alt_ref_startTime aircraft_->demo_ap_alt_ref_startTime
+  bool demo_ap_Phi_ref;
+  string demo_ap_Phi_ref_file;
+  double demo_ap_Phi_ref_timeArray[10];
+  double demo_ap_Phi_ref_daArray[10];
+  int demo_ap_Phi_ref_ntime;
+  double demo_ap_Phi_ref_startTime;
+#define demo_ap_Phi_ref           aircraft_->demo_ap_Phi_ref
+#define demo_ap_Phi_ref_file      aircraft_->demo_ap_Phi_ref_file
+#define demo_ap_Phi_ref_timeArray aircraft_->demo_ap_Phi_ref_timeArray
+#define demo_ap_Phi_ref_daArray   aircraft_->demo_ap_Phi_ref_daArray
+#define demo_ap_Phi_ref_ntime     aircraft_->demo_ap_Phi_ref_ntime
+#define demo_ap_Phi_ref_startTime aircraft_->demo_ap_Phi_ref_startTime
+  bool demo_ap_Psi_ref;
+  string demo_ap_Psi_ref_file;
+  double demo_ap_Psi_ref_timeArray[10];
+  double demo_ap_Psi_ref_daArray[10];
+  int demo_ap_Psi_ref_ntime;
+  double demo_ap_Psi_ref_startTime;
+#define demo_ap_Psi_ref           aircraft_->demo_ap_Psi_ref
+#define demo_ap_Psi_ref_file      aircraft_->demo_ap_Psi_ref_file
+#define demo_ap_Psi_ref_timeArray aircraft_->demo_ap_Psi_ref_timeArray
+#define demo_ap_Psi_ref_daArray   aircraft_->demo_ap_Psi_ref_daArray
+#define demo_ap_Psi_ref_ntime     aircraft_->demo_ap_Psi_ref_ntime
+#define demo_ap_Psi_ref_startTime aircraft_->demo_ap_Psi_ref_startTime
+  bool demo_tactile;
+  string demo_tactile_file;
+  double demo_tactile_timeArray[1500];
+  double demo_tactile_daArray[1500];
+  int demo_tactile_ntime;
+  double demo_tactile_startTime;
+#define demo_tactile           aircraft_->demo_tactile
+#define demo_tactile_file      aircraft_->demo_tactile_file
+#define demo_tactile_timeArray aircraft_->demo_tactile_timeArray
+#define demo_tactile_daArray   aircraft_->demo_tactile_daArray
+#define demo_tactile_ntime     aircraft_->demo_tactile_ntime
+#define demo_tactile_startTime aircraft_->demo_tactile_startTime
+  bool demo_ice_tail;
+  string demo_ice_tail_file;
+  double demo_ice_tail_timeArray[10];
+  int demo_ice_tail_daArray[10];
+  int demo_ice_tail_ntime;
+  double demo_ice_tail_startTime;
+#define demo_ice_tail           aircraft_->demo_ice_tail
+#define demo_ice_tail_file      aircraft_->demo_ice_tail_file
+#define demo_ice_tail_timeArray aircraft_->demo_ice_tail_timeArray
+#define demo_ice_tail_daArray   aircraft_->demo_ice_tail_daArray
+#define demo_ice_tail_ntime     aircraft_->demo_ice_tail_ntime
+#define demo_ice_tail_startTime aircraft_->demo_ice_tail_startTime
+  bool demo_ice_left;
+  string demo_ice_left_file;
+  double demo_ice_left_timeArray[10];
+  int demo_ice_left_daArray[10];
+  int demo_ice_left_ntime;
+  double demo_ice_left_startTime;
+#define demo_ice_left           aircraft_->demo_ice_left
+#define demo_ice_left_file      aircraft_->demo_ice_left_file
+#define demo_ice_left_timeArray aircraft_->demo_ice_left_timeArray
+#define demo_ice_left_daArray   aircraft_->demo_ice_left_daArray
+#define demo_ice_left_ntime     aircraft_->demo_ice_left_ntime
+#define demo_ice_left_startTime aircraft_->demo_ice_left_startTime
+  bool demo_ice_right;
+  string demo_ice_right_file;
+  double demo_ice_right_timeArray[10];
+  int demo_ice_right_daArray[10];
+  int demo_ice_right_ntime;
+  double demo_ice_right_startTime;
+#define demo_ice_right           aircraft_->demo_ice_right
+#define demo_ice_right_file      aircraft_->demo_ice_right_file
+#define demo_ice_right_timeArray aircraft_->demo_ice_right_timeArray
+#define demo_ice_right_daArray   aircraft_->demo_ice_right_daArray
+#define demo_ice_right_ntime     aircraft_->demo_ice_right_ntime
+#define demo_ice_right_startTime aircraft_->demo_ice_right_startTime
 
   //321654
   /* Variables (token2) ===========================================*/
   /* fog =========== Fog field quantities ======================== */
 
-  map <string,int> fog_map;
+  std::map <string,int> fog_map;
 #define fog_map        aircraft_->fog_map
 
   bool fog_field;
@@ -1910,18 +2801,6 @@ struct AIRCRAFT
  
   int Fog;
   
-  AIRCRAFT()
-  {
-    fog_field = false;
-    fog_segments = 0;
-    fog_point_index = -1;
-    fog_time = NULL;
-    fog_value = NULL;
-    fog_next_time = 0.0;
-    fog_current_segment = 0;
-    Fog = 0;
-  };
-
 #define fog_field      aircraft_->fog_field
 #define fog_segments   aircraft_->fog_segments
 #define fog_point_index        aircraft_->fog_point_index
@@ -1937,7 +2816,7 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* record ======== Record desired quantites to file =============*/
   
-  map <string,int> record_map;
+  std::map <string,int> record_map;
 #define      record_map              aircraft_->record_map
 
   /***** Angles ******/
@@ -1957,8 +2836,8 @@ struct AIRCRAFT
 #define elevator_deg    aircraft_->elevator_deg
 #define aileron_deg     aircraft_->aileron_deg
 #define rudder_deg      aircraft_->rudder_deg
-  double flap_deg;
-#define flap_deg        aircraft_->flap_deg
+  //  double flap_pos_deg;
+  //#define flap_pos_deg        aircraft_->flap_pos_deg
 
   /***** Forces ******/
   double F_X_wind, F_Y_wind, F_Z_wind;
@@ -2015,20 +2894,39 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* misc ========== Miscellaneous input commands =================*/
 
-  map <string,int> misc_map;
+  std::map <string,int> misc_map;
 #define      misc_map        aircraft_->misc_map       
 
   double simpleHingeMomentCoef;
 #define simpleHingeMomentCoef    aircraft_->simpleHingeMomentCoef
-  string dfTimefdf;
-  double dfTimefdf_dfArray[100];
-  double dfTimefdf_TimeArray[100];
-  int dfTimefdf_ndf;
-#define dfTimefdf              aircraft_->dfTimefdf
-#define dfTimefdf_dfArray      aircraft_->dfTimefdf_dfArray
-#define dfTimefdf_TimeArray    aircraft_->dfTimefdf_TimeArray
-#define dfTimefdf_ndf          aircraft_->dfTimefdf_ndf
-
+  //string dfTimefdf;
+  //double dfTimefdf_dfArray[100];
+  //double dfTimefdf_TimeArray[100];
+  //int dfTimefdf_ndf;
+  //#define dfTimefdf              aircraft_->dfTimefdf
+  //#define dfTimefdf_dfArray      aircraft_->dfTimefdf_dfArray
+  //#define dfTimefdf_TimeArray    aircraft_->dfTimefdf_TimeArray
+  //#define dfTimefdf_ndf          aircraft_->dfTimefdf_ndf
+
+  FlapData *flapper_data;
+#define flapper_data           aircraft_->flapper_data
+  bool flapper_model;
+#define flapper_model          aircraft_->flapper_model
+  double flapper_phi_init;
+#define flapper_phi_init       aircraft_->flapper_phi_init
+  double flapper_freq, flapper_cycle_pct, flapper_phi;
+  double flapper_Lift, flapper_Thrust, flapper_Inertia;
+  double flapper_Moment;
+#define flapper_freq           aircraft_->flapper_freq
+#define flapper_cycle_pct      aircraft_->flapper_cycle_pct
+#define flapper_phi            aircraft_->flapper_phi
+#define flapper_Lift           aircraft_->flapper_Lift
+#define flapper_Thrust         aircraft_->flapper_Thrust
+#define flapper_Inertia        aircraft_->flapper_Inertia
+#define flapper_Moment         aircraft_->flapper_Moment
+  double F_X_aero_flapper, F_Z_aero_flapper;
+#define F_X_aero_flapper       aircraft_->F_X_aero_flapper
+#define F_Z_aero_flapper       aircraft_->F_Z_aero_flapper
 
   /* Other variables (not tokens) =================================*/
 
@@ -2049,18 +2947,152 @@ struct AIRCRAFT
 #define dfArray   aircraft_->dfArray
 #define TimeArray aircraft_->TimeArray
 
-  double flap_percent, flap_goal, flap_moving_rate, flap_pos;
-#define flap_percent     aircraft_->flap_percent
-#define flap_goal        aircraft_->flap_goal
-#define flap_moving_rate aircraft_->flap_moving_rate
-#define flap_pos         aircraft_->flap_pos
-
-
-  ofstream fout;
+  double flap_percent, flap_increment_per_timestep, flap_cmd, flap_pos, flap_pos_norm;
+#define flap_percent                  aircraft_->flap_percent
+#define flap_increment_per_timestep   aircraft_->flap_increment_per_timestep
+#define flap_cmd                      aircraft_->flap_cmd
+#define flap_pos                      aircraft_->flap_pos
+#define flap_pos_norm                 aircraft_->flap_pos_norm
+
+  double Spoiler_handle, spoiler_increment_per_timestep, spoiler_cmd;
+  double spoiler_pos_norm, spoiler_pos;
+#define Spoiler_handle                 aircraft_->Spoiler_handle
+#define spoiler_increment_per_timestep aircraft_->spoiler_increment_per_timestep
+#define spoiler_cmd                    aircraft_->spoiler_cmd
+#define spoiler_pos_norm               aircraft_->spoiler_pos_norm
+#define spoiler_pos                    aircraft_->spoiler_pos
+
+  double Gear_handle, gear_increment_per_timestep, gear_cmd_norm, gear_pos_norm;
+#define Gear_handle                   aircraft_->Gear_handle
+#define gear_increment_per_timestep   aircraft_->gear_increment_per_timestep
+#define gear_cmd_norm                 aircraft_->gear_cmd_norm
+#define gear_pos_norm                 aircraft_->gear_pos_norm
+
+  double delta_CL, delta_CD, delta_Cm, delta_Ch, delta_Cl, delta_Cn;
+#define delta_CL         aircraft_->delta_CL
+#define delta_CD         aircraft_->delta_CD
+#define delta_Cm         aircraft_->delta_Cm
+#define delta_Ch         aircraft_->delta_Ch
+#define delta_Cl         aircraft_->delta_Cl
+#define delta_Cn         aircraft_->delta_Cn
+
+  int nonlin_ice_case;
+  double eta_wing_left, eta_wing_right, eta_tail;
+  double OATemperature_F;
+#define nonlin_ice_case  aircraft_->nonlin_ice_case
+#define eta_wing_left    aircraft_->eta_wing_left
+#define eta_wing_right   aircraft_->eta_wing_right
+#define eta_tail         aircraft_->eta_tail
+#define OATemperature_F  aircraft_->OATemperature_F
+  int boot_cycle_tail, boot_cycle_wing_left, boot_cycle_wing_right;
+  int autoIPS_tail, autoIPS_wing_left, autoIPS_wing_right;
+  int eps_pitch_input;
+  double eps_alpha_max, eps_pitch_max, eps_pitch_min;
+  double eps_roll_max, eps_thrust_min, eps_flap_max;
+  double eps_airspeed_max, eps_airspeed_min;
+#define boot_cycle_tail        aircraft_->boot_cycle_tail 
+#define boot_cycle_wing_left   aircraft_->boot_cycle_wing_left
+#define boot_cycle_wing_right  aircraft_->boot_cycle_wing_right
+#define autoIPS_tail           aircraft_->autoIPS_tail
+#define autoIPS_wing_left      aircraft_->autoIPS_wing_left
+#define autoIPS_wing_right     aircraft_->autoIPS_wing_right
+#define eps_pitch_input        aircraft_->eps_pitch_input
+#define eps_alpha_max          aircraft_->eps_alpha_max
+#define eps_pitch_max          aircraft_->eps_pitch_max
+#define eps_pitch_min          aircraft_->eps_pitch_min
+#define eps_roll_max           aircraft_->eps_roll_max
+#define eps_thrust_min         aircraft_->eps_thrust_min
+#define eps_flap_max           aircraft_->eps_flap_max
+#define eps_airspeed_max       aircraft_->eps_airspeed_max
+#define eps_airspeed_min       aircraft_->eps_airspeed_min
+
+  double Ch;
+#define Ch   aircraft_->Ch;
+
+  double CL_clean, CL_iced;
+  double CY_clean, CY_iced;
+  double CD_clean, CD_iced;
+  double Cm_clean, Cm_iced;
+  double Cl_clean, Cl_iced;
+  double Cn_clean, Cn_iced;
+  double Ch_clean, Ch_iced;
+#define CL_clean         aircraft_->CL_clean
+#define CY_clean         aircraft_->CY_clean
+#define CD_clean         aircraft_->CD_clean
+#define Cm_clean         aircraft_->Cm_clean
+#define Cl_clean         aircraft_->Cl_clean
+#define Cn_clean         aircraft_->Cn_clean
+#define Ch_clean         aircraft_->Ch_clean
+#define CL_iced          aircraft_->CL_iced
+#define CY_iced          aircraft_->CY_iced
+#define CD_iced          aircraft_->CD_iced
+#define Cm_iced          aircraft_->Cm_iced
+#define Cl_iced          aircraft_->Cl_iced
+#define Cn_iced          aircraft_->Cn_iced
+#define Ch_iced          aircraft_->Ch_iced
+
+  std::ofstream fout;
   
 #define fout aircraft_->fout
   
+  bool ignore_unknown_keywords;
+#define ignore_unknown_keywords           aircraft_->ignore_unknown_keywords
   
+  int ap_pah_on;
+#define ap_pah_on              aircraft_->ap_pah_on
+  double ap_pah_start_time;
+#define ap_pah_start_time      aircraft_->ap_pah_start_time
+  double ap_Theta_ref_rad;
+#define ap_Theta_ref_rad       aircraft_->ap_Theta_ref_rad
+
+  int ap_alh_on;
+#define ap_alh_on              aircraft_->ap_alh_on
+  double ap_alh_start_time;
+#define ap_alh_start_time      aircraft_->ap_alh_start_time
+  double ap_alt_ref_ft;
+#define ap_alt_ref_ft          aircraft_->ap_alt_ref_ft
+
+  int ap_rah_on;
+#define ap_rah_on              aircraft_->ap_rah_on
+  double ap_rah_start_time;
+#define ap_rah_start_time      aircraft_->ap_rah_start_time
+  double ap_Phi_ref_rad;
+#define ap_Phi_ref_rad         aircraft_->ap_Phi_ref_rad
+
+  int ap_hh_on;
+#define ap_hh_on              aircraft_->ap_hh_on
+  double ap_hh_start_time;
+#define ap_hh_start_time      aircraft_->ap_hh_start_time
+  double ap_Psi_ref_rad;
+#define ap_Psi_ref_rad         aircraft_->ap_Psi_ref_rad
+
+  int pitch_trim_up, pitch_trim_down;
+#define pitch_trim_up          aircraft_->pitch_trim_up
+#define pitch_trim_down        aircraft_->pitch_trim_down
+
+  bool pilot_throttle_no;
+#define pilot_throttle_no      aircraft_->pilot_throttle_no
+
+  int ice_tail, ice_left, ice_right;
+#define ice_tail               aircraft_->ice_tail
+#define ice_left               aircraft_->ice_left
+#define ice_right              aircraft_->ice_right
+
+  // Variables for the trigger command
+  int trigger_on, trigger_last_time_step, trigger_num;
+  int trigger_toggle, trigger_counter;
+#define trigger_on             aircraft_->trigger_on
+#define trigger_last_time_step aircraft_->trigger_last_time_step
+#define trigger_num            aircraft_->trigger_num
+#define trigger_toggle         aircraft_->trigger_toggle
+#define trigger_counter        aircraft_->trigger_counter
+
+  // temp debug values
+  double debug7, debug8, debug9, debug10;
+#define debug7                 aircraft_->debug7
+#define debug8                 aircraft_->debug8
+#define debug9                 aircraft_->debug9
+#define debug10                aircraft_->debug10
 };
 
 extern AIRCRAFT *aircraft_;    // usually defined in the first program that includes uiuc_aircraft.h