]> git.mxchange.org Git - flightgear.git/blob - src/FDM/UIUCModel/uiuc_aircraft.h
From: David Megginson <david@megginson.com>
[flightgear.git] / src / FDM / UIUCModel / uiuc_aircraft.h
1 /**********************************************************************
2
3  FILENAME:     uiuc_aircraft.h
4
5 ----------------------------------------------------------------------
6
7  DESCRIPTION:  creates maps for all keywords and variables expected in 
8                aircraft input file, includes all parameters that
9                define the aircraft for use in the uiuc aircraft models.
10
11 ----------------------------------------------------------------------
12
13  STATUS:       alpha version
14
15 ----------------------------------------------------------------------
16
17  REFERENCES:   
18
19 ----------------------------------------------------------------------
20
21  HISTORY:      01/26/2000   initial release
22                02/10/2000   (JS) changed aeroData to aeroParts (etc.)
23                             added Twin Otter 2.5 equation variables
24                             added Dx_cg (etc.) to init & record maps
25                             added controlsMixer to top level map
26                02/18/2000   (JS) added variables needed for 1D file 
27                             reading of CL and CD as functions of alpha
28                02/29/2000   (JS) added variables needed for 2D file 
29                             reading of CL, CD, and Cm as functions of 
30                             alpha and delta_e; of CY and Cn as function 
31                             of alpha and delta_r; and of Cl and Cn as 
32                             functions of alpha and delta_a
33                03/02/2000   (JS) added record features for 1D and 2D 
34                             interpolations
35                03/29/2000   (JS) added Cmfa interpolation functions 
36                             and Weight; added misc map
37                04/01/2000   (JS) added throttle, longitudinal, lateral, 
38                             and rudder inputs to record map
39                03/09/2001   (DPM) added support for gear
40
41 ----------------------------------------------------------------------
42
43  AUTHOR(S):    Bipin Sehgal       <bsehgal@uiuc.edu>
44                Jeff Scott         <jscott@mail.com>
45                David Megginson    <david@megginson.com>
46
47 ----------------------------------------------------------------------
48
49  VARIABLES:
50
51 ----------------------------------------------------------------------
52
53  INPUTS:       none
54
55 ----------------------------------------------------------------------
56
57  OUTPUTS:      none
58
59 ----------------------------------------------------------------------
60
61  CALLED BY:    uiuc_1DdataFileReader.cpp
62                uiuc_2DdataFileReader.cpp
63                uiuc_aerodeflections.cpp
64                uiuc_coefficients.cpp
65                uiuc_engine.cpp
66                uiuc_initializemaps.cpp
67                uiuc_menu.cpp
68                uiuc_recorder.cpp
69
70 ----------------------------------------------------------------------
71
72  CALLS TO:     none
73
74 ----------------------------------------------------------------------
75
76  COPYRIGHT:    (C) 2000 by Michael Selig
77
78  This program is free software; you can redistribute it and/or
79  modify it under the terms of the GNU General Public License
80  as published by the Free Software Foundation.
81
82  This program is distributed in the hope that it will be useful,
83  but WITHOUT ANY WARRANTY; without even the implied warranty of
84  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
85  GNU General Public License for more details.
86
87  You should have received a copy of the GNU General Public License
88  along with this program; if not, write to the Free Software
89  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
90  USA or view http://www.gnu.org/copyleft/gpl.html.
91
92 **********************************************************************/
93
94
95 #ifndef _AIRCRAFT_H_
96 #define _AIRCRAFT_H_
97
98 #include <simgear/compiler.h>
99
100 #include <map>
101 #include STL_IOSTREAM
102 #include <math.h>
103
104 #include "uiuc_parsefile.h"
105
106 SG_USING_STD(map);
107 SG_USING_STD(iostream);
108 #if defined ( macintosh ) || defined ( _MSC_VER )
109 SG_USING_STD(ofstream);
110 #endif
111
112
113 typedef stack :: iterator LIST;
114
115 /* Add more keywords here if required*/
116 enum {init_flag = 1000, geometry_flag, controlSurface_flag, controlsMixer_flag, 
117       mass_flag, engine_flag, CD_flag, CL_flag, Cm_flag, CY_flag, Cl_flag, 
118       Cn_flag, gear_flag, ice_flag, record_flag, misc_flag};
119
120 // init ======= Initial values for equation of motion
121 enum {Dx_pilot_flag = 2000, Dy_pilot_flag, Dz_pilot_flag, 
122       Dx_cg_flag, Dy_cg_flag, Dz_cg_flag, Altitude_flag,
123       V_north_flag, V_east_flag, V_down_flag, 
124       P_body_flag, Q_body_flag, R_body_flag, 
125       Phi_flag, Theta_flag, Psi_flag,
126       Long_trim_flag, recordRate_flag, recordStartTime_flag, 
127       nondim_rate_V_rel_wind_flag, dyn_on_speed_flag};
128
129 // geometry === Aircraft-specific geometric quantities
130 enum {bw_flag = 3000, cbar_flag, Sw_flag, ih_flag, bh_flag, ch_flag, Sh_flag};
131
132 // controlSurface = Control surface deflections and properties
133 enum {de_flag = 4000, da_flag, dr_flag, 
134       set_Long_trim_flag, set_Long_trim_deg_flag, zero_Long_trim_flag, 
135       elevator_step_flag, elevator_singlet_flag, elevator_doublet_flag, elevator_input_flag};
136
137 // controlsMixer == Controls mixer
138 enum {nomix_flag = 5000};
139
140 //mass ======== Aircraft-specific mass properties
141 enum {Weight_flag = 6000, Mass_flag, I_xx_flag, I_yy_flag, I_zz_flag, I_xz_flag};
142
143 // engine ===== Propulsion data
144 enum {simpleSingle_flag = 7000, c172_flag, cherokee_flag};
145
146 // CD ========= Aerodynamic x-force quantities (longitudinal)
147 enum {CDo_flag = 8000, CDK_flag, CD_a_flag, CD_adot_flag, CD_q_flag, CD_ih_flag, CD_de_flag, 
148       CDfa_flag, CDfCL_flag, CDfade_flag, CDfdf_flag, CDfadf_flag, 
149       CXo_flag, CXK_flag, CX_a_flag, CX_a2_flag, CX_a3_flag, CX_adot_flag, 
150       CX_q_flag, CX_de_flag, CX_dr_flag, CX_df_flag, CX_adf_flag};
151
152 // CL ========= Aerodynamic z-force quantities (longitudinal)
153 enum {CLo_flag = 9000, CL_a_flag, CL_adot_flag, CL_q_flag, CL_ih_flag, CL_de_flag, 
154       CLfa_flag, CLfade_flag, CLfdf_flag, CLfadf_flag, 
155       CZo_flag, CZ_a_flag, CZ_a2_flag, CZ_a3_flag, CZ_adot_flag, 
156       CZ_q_flag, CZ_de_flag, CZ_deb2_flag, CZ_df_flag, CZ_adf_flag};
157
158 // Cm ========= Aerodynamic m-moment quantities (longitudinal)
159 enum {Cmo_flag = 10000, Cm_a_flag, Cm_a2_flag, Cm_adot_flag, Cm_q_flag, 
160       Cm_ih_flag, Cm_de_flag, Cm_b2_flag, Cm_r_flag, Cm_df_flag, 
161       Cmfa_flag, Cmfade_flag, Cmfdf_flag, Cmfadf_flag};
162
163 // CY ========= Aerodynamic y-force quantities (lateral)
164 enum {CYo_flag = 11000, CY_beta_flag, CY_p_flag, CY_r_flag, CY_da_flag, 
165       CY_dr_flag, CY_dra_flag, CY_bdot_flag, CYfada_flag, CYfbetadr_flag};
166
167 // Cl ========= Aerodynamic l-moment quantities (lateral)
168 enum {Clo_flag = 12000, Cl_beta_flag, Cl_p_flag, Cl_r_flag, Cl_da_flag, 
169       Cl_dr_flag, Cl_daa_flag, Clfada_flag, Clfbetadr_flag};
170
171 // Cn ========= Aerodynamic n-moment quantities (lateral)
172 enum {Cno_flag = 13000, Cn_beta_flag, Cn_p_flag, Cn_r_flag, Cn_da_flag, 
173       Cn_dr_flag, Cn_q_flag, Cn_b3_flag, Cnfada_flag, Cnfbetadr_flag};
174
175 // gear ======= Landing gear model quantities
176 enum {Dx_gear_flag = 14000, Dy_gear_flag, Dz_gear_flag, cgear_flag,
177       kgear_flag, muGear_flag, strutLength_flag};
178
179 // ice ======== Ice model quantities
180 enum {iceTime_flag = 15000, transientTime_flag, eta_ice_final_flag, 
181       beta_probe_wing_flag, beta_probe_tail_flag, 
182       kCDo_flag, kCDK_flag, kCD_a_flag, kCD_adot_flag, kCD_q_flag, kCD_de_flag, 
183       kCXo_flag, kCXK_flag, kCX_a_flag, kCX_a2_flag, kCX_a3_flag, kCX_adot_flag, 
184       kCX_q_flag, kCX_de_flag, kCX_dr_flag, kCX_df_flag, kCX_adf_flag, 
185       kCLo_flag, kCL_a_flag, kCL_adot_flag, kCL_q_flag, kCL_de_flag, 
186       kCZo_flag, kCZ_a_flag, kCZ_a2_flag, kCZ_a3_flag, kCZ_adot_flag, 
187       kCZ_q_flag, kCZ_de_flag, kCZ_deb2_flag, kCZ_df_flag, kCZ_adf_flag, 
188       kCmo_flag, kCm_a_flag, kCm_a2_flag, kCm_adot_flag, kCm_q_flag, 
189       kCm_de_flag, kCm_b2_flag, kCm_r_flag, kCm_df_flag, 
190       kCYo_flag, kCY_beta_flag, kCY_p_flag, kCY_r_flag, kCY_da_flag, 
191       kCY_dr_flag, kCY_dra_flag, kCY_bdot_flag, 
192       kClo_flag, kCl_beta_flag, kCl_p_flag, kCl_r_flag, kCl_da_flag, 
193       kCl_dr_flag, kCl_daa_flag, 
194       kCno_flag, kCn_beta_flag, kCn_p_flag, kCn_r_flag, kCn_da_flag, 
195       kCn_dr_flag, kCn_q_flag, kCn_b3_flag};
196
197 // record ===== Record desired quantites to file
198 enum {Simtime_record = 16000, dt_record, 
199
200       Weight_record, Mass_record, I_xx_record, I_yy_record, I_zz_record, I_xz_record, 
201
202       Dx_pilot_record, Dy_pilot_record, Dz_pilot_record, 
203       Dx_cg_record, Dy_cg_record, Dz_cg_record,
204       Lat_geocentric_record, Lon_geocentric_record, Radius_to_vehicle_record, 
205       Latitude_record, Longitude_record, Altitude_record, 
206       Phi_record, Theta_record, Psi_record, 
207
208       V_dot_north_record, V_dot_east_record, V_dot_down_record, 
209       U_dot_body_record, V_dot_body_record, W_dot_body_record, 
210       A_X_pilot_record, A_Y_pilot_record, A_Z_pilot_record, 
211       A_X_cg_record, A_Y_cg_record, A_Z_cg_record, 
212       N_X_pilot_record, N_Y_pilot_record, N_Z_pilot_record, 
213       N_X_cg_record, N_Y_cg_record, N_Z_cg_record, 
214       P_dot_body_record, Q_dot_body_record, R_dot_body_record, 
215
216       V_north_record, V_east_record, V_down_record, 
217       V_north_rel_ground_record, V_east_rel_ground_record, V_down_rel_ground_record, 
218       V_north_airmass_record, V_east_airmass_record, V_down_airmass_record, 
219       V_north_rel_airmass_record, V_east_rel_airmass_record, V_down_rel_airmass_record, 
220       U_gust_record, V_gust_record, W_gust_record, 
221       U_body_record, V_body_record, W_body_record, 
222       V_rel_wind_record, V_true_kts_record, V_rel_ground_record, 
223       V_inertial_record, V_ground_speed_record, V_equiv_record, 
224       V_equiv_kts_record, V_calibrated_record, V_calibrated_kts_record, 
225       P_local_record, Q_local_record, R_local_record, 
226       P_body_record, Q_body_record, R_body_record, 
227       P_total_record, Q_total_record, R_total_record, 
228       Phi_dot_record, Theta_dot_record, Psi_dot_record, 
229       Latitude_dot_record, Longitude_dot_record, Radius_dot_record, 
230
231       Alpha_record, Alpha_deg_record, Alpha_dot_record, Alpha_dot_deg_record, 
232       Beta_record, Beta_deg_record, Beta_dot_record, Beta_dot_deg_record, 
233       Gamma_vert_record, Gamma_vert_deg_record, Gamma_horiz_record, Gamma_horiz_deg_record,
234
235       Density_record, V_sound_record, Mach_number_record, 
236       Static_pressure_record, Total_pressure_record, Impact_pressure_record, 
237       Dynamic_pressure_record, 
238       Static_temperature_record, Total_temperature_record, 
239
240       Gravity_record, Sea_level_radius_record, Earth_position_angle_record, 
241       Runway_altitude_record, Runway_latitude_record, Runway_longitude_record, 
242       Runway_heading_record, Radius_to_rwy_record, 
243       D_pilot_north_of_rwy_record, D_pilot_east_of_rwy_record, D_pilot_above_rwy_record, 
244       X_pilot_rwy_record, Y_pilot_rwy_record, H_pilot_rwy_record, 
245       D_cg_north_of_rwy_record, D_cg_east_of_rwy_record, D_cg_above_rwy_record, 
246       X_cg_rwy_record, Y_cg_rwy_record, H_cg_rwy_record, 
247
248       Throttle_3_record, Throttle_pct_record, 
249
250       Long_control_record, Long_trim_record, Long_trim_deg_record, 
251       elevator_record, elevator_deg_record, 
252       Lat_control_record, aileron_record, aileron_deg_record, 
253       Rudder_pedal_record, rudder_record, rudder_deg_record, 
254       Flap_handle_record, flap_record, flap_deg_record, 
255
256       CD_record, CDfaI_record, CDfCLI_record, CDfadeI_record, CDfdfI_record, CDfadfI_record, CX_record,
257       CL_record, CLfaI_record, CLfadeI_record, CLfdfI_record, CLfadfI_record, CZ_record,
258       Cm_record, CmfaI_record, CmfadeI_record, CmfdfI_record, CmfadfI_record,
259       CY_record, CYfadaI_record, CYfbetadrI_record, 
260       Cl_record, ClfadaI_record, ClfbetadrI_record, 
261       Cn_record, CnfadaI_record, CnfbetadrI_record,
262
263       F_X_wind_record, F_Y_wind_record, F_Z_wind_record, 
264       F_X_aero_record, F_Y_aero_record, F_Z_aero_record,
265       F_X_engine_record, F_Y_engine_record, F_Z_engine_record, 
266       F_X_gear_record, F_Y_gear_record, F_Z_gear_record, 
267       F_X_record, F_Y_record, F_Z_record, 
268       F_north_record, F_east_record, F_down_record, 
269
270       M_l_aero_record, M_m_aero_record, M_n_aero_record, 
271       M_l_engine_record, M_m_engine_record, M_n_engine_record, 
272       M_l_gear_record, M_m_gear_record, M_n_gear_record, 
273       M_l_rp_record, M_m_rp_record, M_n_rp_record,
274
275       CLclean_wing_record, CLiced_wing_record, 
276       CLclean_tail_record, CLiced_tail_record, 
277       Lift_clean_wing_record, Lift_iced_wing_record, 
278       Lift_clean_tail_record, Lift_iced_tail_record, 
279       Gamma_clean_wing_record, Gamma_iced_wing_record, 
280       Gamma_clean_tail_record, Gamma_iced_tail_record, 
281       w_clean_wing_record, w_iced_wing_record, 
282       w_clean_tail_record, w_iced_tail_record, 
283       V_total_clean_wing_record, V_total_iced_wing_record, 
284       V_total_clean_tail_record, V_total_iced_tail_record, 
285       beta_flow_clean_wing_record, beta_flow_clean_wing_deg_record, 
286       beta_flow_iced_wing_record, beta_flow_iced_wing_deg_record, 
287       beta_flow_clean_tail_record, beta_flow_clean_tail_deg_record, 
288       beta_flow_iced_tail_record, beta_flow_iced_tail_deg_record, 
289       Dbeta_flow_wing_record, Dbeta_flow_wing_deg_record, 
290       Dbeta_flow_tail_record, Dbeta_flow_tail_deg_record, 
291       pct_beta_flow_wing_record, pct_beta_flow_tail_record};
292
293 // misc ======= Miscellaneous inputs
294 enum {simpleHingeMomentCoef_flag = 17000, dfTimefdf_flag};
295
296
297 typedef struct
298 {
299   // ParseFile stuff [] Bipin to add more comments
300   ParseFile *airplane;
301 #define  airplane           aircraft_->airplane
302   ParseFile *initParts;
303 #define  initParts          aircraft_->initParts
304   ParseFile *geometryParts;
305 #define  geometryParts      aircraft_->geometryParts
306   ParseFile *massParts;
307 #define  massParts          aircraft_->massParts
308   ParseFile *aeroDragParts;
309 #define  aeroDragParts      aircraft_->aeroDragParts
310   ParseFile *aeroLiftParts;
311 #define  aeroLiftParts      aircraft_->aeroLiftParts
312   ParseFile *aeroPitchParts;
313 #define  aeroPitchParts     aircraft_->aeroPitchParts
314   ParseFile *aeroSideforceParts;
315 #define  aeroSideforceParts aircraft_->aeroSideforceParts
316   ParseFile *aeroRollParts;
317 #define  aeroRollParts      aircraft_->aeroRollParts
318   ParseFile *aeroYawParts;
319 #define  aeroYawParts       aircraft_->aeroYawParts
320   ParseFile *engineParts;
321 #define  engineParts        aircraft_->engineParts
322   ParseFile *gearParts;
323 #define  gearParts          aircraft_->gearParts
324   ParseFile *recordParts;
325 #define  recordParts        aircraft_->recordParts
326   
327   /*= Keywords (token1) ===========================================*/
328   map <string,int>      Keyword_map;
329 #define      Keyword_map         aircraft_->Keyword_map       
330
331   double CD, CX, CL, CZ, Cm, CY, Cl, Cn;
332 #define CD  aircraft_->CD
333 #define CX  aircraft_->CX
334 #define CL  aircraft_->CL
335 #define CZ  aircraft_->CZ
336 #define Cm  aircraft_->Cm
337 #define CY  aircraft_->CY
338 #define Cl  aircraft_->Cl
339 #define Cn  aircraft_->Cn
340   double CXclean_wing, CXclean_tail, CXiced_wing, CXiced_tail;
341   double CLclean_wing, CLclean_tail, CLiced_wing, CLiced_tail;
342   double CZclean_wing, CZclean_tail, CZiced_wing, CZiced_tail;
343 #define CXclean_wing  aircraft_->CXclean_wing
344 #define CXclean_tail  aircraft_->CXclean_tail
345 #define CXiced_wing   aircraft_->CXiced_wing
346 #define CXiced_tail   aircraft_->CXiced_tail
347 #define CLclean_wing  aircraft_->CLclean_wing
348 #define CLclean_tail  aircraft_->CLclean_tail
349 #define CLiced_wing   aircraft_->CLiced_wing
350 #define CLiced_tail   aircraft_->CLiced_tail
351 #define CZclean_wing  aircraft_->CZclean_wing
352 #define CZclean_tail  aircraft_->CZclean_tail
353 #define CZiced_wing   aircraft_->CZiced_wing
354 #define CZiced_tail   aircraft_->CZiced_tail
355
356   /*========================================*/
357   /* Variables (token2) - 17 groups (000329)*/
358   /*========================================*/
359
360   /* Variables (token2) ===========================================*/
361   /* init ========== Initial values for equations of motion =======*/
362
363   map <string,int> init_map;
364 #define      init_map            aircraft_->init_map          
365
366   int recordRate;
367 #define recordRate             aircraft_->recordRate
368   double recordStartTime;
369 #define recordStartTime        aircraft_->recordStartTime
370   bool nondim_rate_V_rel_wind;
371 #define nondim_rate_V_rel_wind aircraft_->nondim_rate_V_rel_wind
372   double dyn_on_speed;
373 #define dyn_on_speed           aircraft_->dyn_on_speed
374
375
376   /* Variables (token2) ===========================================*/
377   /* geometry ====== Aircraft-specific geometric quantities =======*/
378   
379   map <string,int> geometry_map;
380 #define      geometry_map        aircraft_->geometry_map       
381   
382   double bw, cbar, Sw, ih, bh, ch, Sh;
383 #define bw   aircraft_->bw
384 #define cbar aircraft_->cbar
385 #define Sw   aircraft_->Sw       
386 #define ih   aircraft_->ih
387 #define bh   aircraft_->bh
388 #define ch   aircraft_->ch
389 #define Sh   aircraft_->Sh
390
391   
392   /* Variables (token2) ===========================================*/
393   /* controlSurface  Control surface deflections and properties ===*/
394   
395   map <string,int> controlSurface_map;
396 #define      controlSurface_map  aircraft_->controlSurface_map
397   
398   double demax, demin;
399   double damax, damin;
400   double drmax, drmin;
401 #define demax             aircraft_->demax
402 #define demin             aircraft_->demin
403 #define damax             aircraft_->damax
404 #define damin             aircraft_->damin
405 #define drmax             aircraft_->drmax
406 #define drmin             aircraft_->drmin
407
408   double aileron, elevator, rudder;
409 #define aileron           aircraft_->aileron
410 #define elevator          aircraft_->elevator
411 #define rudder            aircraft_->rudder
412   double flap;
413 #define flap              aircraft_->flap
414
415   bool set_Long_trim, zero_Long_trim;
416   double Long_trim_constant;
417 #define set_Long_trim      aircraft_->set_Long_trim
418 #define Long_trim_constant aircraft_->Long_trim_constant
419 #define zero_Long_trim     aircraft_->zero_Long_trim
420
421   bool elevator_step;
422   double elevator_step_angle, elevator_step_startTime;
423 #define elevator_step              aircraft_->elevator_step
424 #define elevator_step_angle        aircraft_->elevator_step_angle
425 #define elevator_step_startTime    aircraft_->elevator_step_startTime
426
427   bool elevator_singlet;
428   double elevator_singlet_angle, elevator_singlet_startTime;
429   double elevator_singlet_duration;
430 #define elevator_singlet           aircraft_->elevator_singlet
431 #define elevator_singlet_angle     aircraft_->elevator_singlet_angle
432 #define elevator_singlet_startTime aircraft_->elevator_singlet_startTime
433 #define elevator_singlet_duration  aircraft_->elevator_singlet_duration
434
435   bool elevator_doublet;
436   double elevator_doublet_angle, elevator_doublet_startTime;
437   double elevator_doublet_duration;
438 #define elevator_doublet           aircraft_->elevator_doublet
439 #define elevator_doublet_angle     aircraft_->elevator_doublet_angle
440 #define elevator_doublet_startTime aircraft_->elevator_doublet_startTime
441 #define elevator_doublet_duration  aircraft_->elevator_doublet_duration
442
443   bool elevator_input;
444   string elevator_input_file;
445   double elevator_input_timeArray[1000];
446   double elevator_input_deArray[1000];
447   int elevator_input_ntime;
448   double elevator_input_startTime;
449 #define elevator_input             aircraft_->elevator_input
450 #define elevator_input_file        aircraft_->elevator_input_file
451 #define elevator_input_timeArray   aircraft_->elevator_input_timeArray
452 #define elevator_input_deArray     aircraft_->elevator_input_deArray
453 #define elevator_input_ntime       aircraft_->elevator_input_ntime
454 #define elevator_input_startTime   aircraft_->elevator_input_startTime
455
456   
457   /* Variables (token2) ===========================================*/
458   /* controlsMixer = Control mixer ================================*/
459   
460   map <string,int> controlsMixer_map;
461 #define      controlsMixer_map  aircraft_->controlsMixer_map
462   
463   double nomix;
464 #define nomix  aircraft_->nomix
465
466   
467   /* Variables (token2) ===========================================*/
468   /* mass =========== Aircraft-specific mass properties ===========*/
469   
470   map <string,int> mass_map;
471 #define      mass_map            aircraft_->mass_map
472
473   double Weight;
474 #define Weight  aircraft_->Weight
475
476
477   /* Variables (token2) ===========================================*/
478   /* engine ======== Propulsion data ==============================*/
479   
480   map <string,int> engine_map;
481 #define      engine_map            aircraft_->engine_map          
482   
483   double simpleSingleMaxThrust;
484 #define simpleSingleMaxThrust  aircraft_->simpleSingleMaxThrust
485   
486
487   /* Variables (token2) ===========================================*/
488   /* CD ============ Aerodynamic x-force quantities (longitudinal) */
489   
490   map <string,int> CD_map;
491 #define      CD_map              aircraft_->CD_map            
492   
493   double CDo, CDK, CD_a, CD_adot, CD_q, CD_ih, CD_de;
494 #define CDo      aircraft_->CDo
495 #define CDK      aircraft_->CDK
496 #define CD_a     aircraft_->CD_a
497 #define CD_adot  aircraft_->CD_adot
498 #define CD_q     aircraft_->CD_q
499 #define CD_ih    aircraft_->CD_ih
500 #define CD_de    aircraft_->CD_de
501   string CDfa;
502   double CDfa_aArray[100];
503   double CDfa_CDArray[100];
504   int CDfa_nAlpha;
505   double CDfaI;
506 #define CDfa               aircraft_->CDfa
507 #define CDfa_aArray        aircraft_->CDfa_aArray
508 #define CDfa_CDArray       aircraft_->CDfa_CDArray
509 #define CDfa_nAlpha        aircraft_->CDfa_nAlpha
510 #define CDfaI              aircraft_->CDfaI
511   string CDfCL;
512   double CDfCL_CLArray[100];
513   double CDfCL_CDArray[100];
514   int CDfCL_nCL;
515   double CDfCLI;
516 #define CDfCL              aircraft_->CDfCL
517 #define CDfCL_CLArray      aircraft_->CDfCL_CLArray
518 #define CDfCL_CDArray      aircraft_->CDfCL_CDArray
519 #define CDfCL_nCL          aircraft_->CDfCL_nCL
520 #define CDfCLI             aircraft_->CDfCLI
521   string CDfade;
522   double CDfade_aArray[100][100];
523   double CDfade_deArray[100];
524   double CDfade_CDArray[100][100];
525   int CDfade_nAlphaArray[100];
526   int CDfade_nde;
527   double CDfadeI;
528 #define CDfade             aircraft_->CDfade
529 #define CDfade_aArray      aircraft_->CDfade_aArray
530 #define CDfade_deArray     aircraft_->CDfade_deArray
531 #define CDfade_CDArray     aircraft_->CDfade_CDArray
532 #define CDfade_nAlphaArray aircraft_->CDfade_nAlphaArray
533 #define CDfade_nde         aircraft_->CDfade_nde
534 #define CDfadeI            aircraft_->CDfadeI
535   string CDfdf;
536   double CDfdf_dfArray[100];
537   double CDfdf_CDArray[100];
538   int CDfdf_ndf;
539   double CDfdfI;
540 #define CDfdf              aircraft_->CDfdf
541 #define CDfdf_dfArray      aircraft_->CDfdf_dfArray
542 #define CDfdf_CDArray      aircraft_->CDfdf_CDArray
543 #define CDfdf_ndf          aircraft_->CDfdf_ndf
544 #define CDfdfI             aircraft_->CDfdfI
545   string CDfadf;
546   double CDfadf_aArray[100][100];
547   double CDfadf_dfArray[100];
548   double CDfadf_CDArray[100][100];
549   int CDfadf_nAlphaArray[100];
550   int CDfadf_ndf;
551   double CDfadfI;
552 #define CDfadf             aircraft_->CDfadf
553 #define CDfadf_aArray      aircraft_->CDfadf_aArray
554 #define CDfadf_dfArray     aircraft_->CDfadf_dfArray
555 #define CDfadf_CDArray     aircraft_->CDfadf_CDArray
556 #define CDfadf_nAlphaArray aircraft_->CDfadf_nAlphaArray
557 #define CDfadf_ndf         aircraft_->CDfadf_ndf
558 #define CDfadfI            aircraft_->CDfadfI
559   double CXo, CXK, CX_a, CX_a2, CX_a3, CX_adot;
560   double CX_q, CX_de, CX_dr, CX_df, CX_adf;
561 #define CXo      aircraft_->CXo
562 #define CXK      aircraft_->CXK
563 #define CX_a     aircraft_->CX_a
564 #define CX_a2    aircraft_->CX_a2
565 #define CX_a3    aircraft_->CX_a3
566 #define CX_adot  aircraft_->CX_adot
567 #define CX_q     aircraft_->CX_q
568 #define CX_de    aircraft_->CX_de
569 #define CX_dr    aircraft_->CX_dr
570 #define CX_df    aircraft_->CX_df
571 #define CX_adf   aircraft_->CX_adf
572   
573
574   /* Variables (token2) ===========================================*/
575   /* CL ============ Aerodynamic z-force quantities (longitudinal) */
576   
577   map <string,int> CL_map;
578 #define      CL_map              aircraft_->CL_map            
579   
580   double CLo, CL_a, CL_adot, CL_q, CL_ih, CL_de;
581 #define CLo      aircraft_->CLo
582 #define CL_a     aircraft_->CL_a
583 #define CL_adot  aircraft_->CL_adot
584 #define CL_q     aircraft_->CL_q
585 #define CL_ih    aircraft_->CL_ih
586 #define CL_de    aircraft_->CL_de
587   string CLfa;
588   double CLfa_aArray[100];
589   double CLfa_CLArray[100];
590   int CLfa_nAlpha;
591   double CLfaI;
592 #define CLfa               aircraft_->CLfa
593 #define CLfa_aArray        aircraft_->CLfa_aArray
594 #define CLfa_CLArray       aircraft_->CLfa_CLArray
595 #define CLfa_nAlpha        aircraft_->CLfa_nAlpha
596 #define CLfaI              aircraft_->CLfaI
597   string CLfade;
598   double CLfade_aArray[100][100];
599   double CLfade_deArray[100];
600   double CLfade_CLArray[100][100];
601   int CLfade_nAlphaArray[100];
602   int CLfade_nde;
603   double CLfadeI;
604 #define CLfade             aircraft_->CLfade
605 #define CLfade_aArray      aircraft_->CLfade_aArray
606 #define CLfade_deArray     aircraft_->CLfade_deArray
607 #define CLfade_CLArray     aircraft_->CLfade_CLArray
608 #define CLfade_nAlphaArray aircraft_->CLfade_nAlphaArray
609 #define CLfade_nde         aircraft_->CLfade_nde
610 #define CLfadeI            aircraft_->CLfadeI
611   string CLfdf;
612   double CLfdf_dfArray[100];
613   double CLfdf_CLArray[100];
614   int CLfdf_ndf;
615   double CLfdfI;
616 #define CLfdf              aircraft_->CLfdf
617 #define CLfdf_dfArray      aircraft_->CLfdf_dfArray
618 #define CLfdf_CLArray      aircraft_->CLfdf_CLArray
619 #define CLfdf_ndf          aircraft_->CLfdf_ndf
620 #define CLfdfI             aircraft_->CLfdfI
621   string CLfadf;
622   double CLfadf_aArray[100][100];
623   double CLfadf_dfArray[100];
624   double CLfadf_CLArray[100][100];
625   int CLfadf_nAlphaArray[100];
626   int CLfadf_ndf;
627   double CLfadfI;
628 #define CLfadf             aircraft_->CLfadf
629 #define CLfadf_aArray      aircraft_->CLfadf_aArray
630 #define CLfadf_dfArray     aircraft_->CLfadf_dfArray
631 #define CLfadf_CLArray     aircraft_->CLfadf_CLArray
632 #define CLfadf_nAlphaArray aircraft_->CLfadf_nAlphaArray
633 #define CLfadf_ndf         aircraft_->CLfadf_ndf
634 #define CLfadfI            aircraft_->CLfadfI
635   double CZo, CZ_a, CZ_a2, CZ_a3, CZ_adot;
636   double CZ_q, CZ_de, CZ_deb2, CZ_df, CZ_adf;
637 #define CZo      aircraft_->CZo
638 #define CZ_a     aircraft_->CZ_a
639 #define CZ_a2    aircraft_->CZ_a2
640 #define CZ_a3    aircraft_->CZ_a3
641 #define CZ_adot  aircraft_->CZ_adot
642 #define CZ_q     aircraft_->CZ_q
643 #define CZ_de    aircraft_->CZ_de
644 #define CZ_deb2  aircraft_->CZ_deb2
645 #define CZ_df    aircraft_->CZ_df
646 #define CZ_adf   aircraft_->CZ_adf
647
648
649   /* Variables (token2) ===========================================*/
650   /* Cm ============ Aerodynamic m-moment quantities (longitudinal) */
651   
652   map <string,int> Cm_map;
653 #define      Cm_map              aircraft_->Cm_map            
654   
655   double Cmo, Cm_a, Cm_a2, Cm_adot, Cm_q;
656   double Cm_ih, Cm_de, Cm_b2, Cm_r, Cm_df;
657 #define Cmo      aircraft_->Cmo
658 #define Cm_a     aircraft_->Cm_a
659 #define Cm_a2    aircraft_->Cm_a2
660 #define Cm_adot  aircraft_->Cm_adot
661 #define Cm_q     aircraft_->Cm_q
662 #define Cm_ih    aircraft_->Cm_ih
663 #define Cm_de    aircraft_->Cm_de
664 #define Cm_b2    aircraft_->Cm_b2
665 #define Cm_r     aircraft_->Cm_r
666 #define Cm_df    aircraft_->Cm_df
667   string Cmfa;
668   double Cmfa_aArray[100];
669   double Cmfa_CmArray[100];
670   int Cmfa_nAlpha;
671   double CmfaI;
672 #define Cmfa               aircraft_->Cmfa
673 #define Cmfa_aArray        aircraft_->Cmfa_aArray
674 #define Cmfa_CmArray       aircraft_->Cmfa_CmArray
675 #define Cmfa_nAlpha        aircraft_->Cmfa_nAlpha
676 #define CmfaI              aircraft_->CmfaI
677   string Cmfade;
678   double Cmfade_aArray[100][100];
679   double Cmfade_deArray[100];
680   double Cmfade_CmArray[100][100];
681   int Cmfade_nAlphaArray[100];
682   int Cmfade_nde;
683   double CmfadeI;
684 #define Cmfade             aircraft_->Cmfade
685 #define Cmfade_aArray      aircraft_->Cmfade_aArray
686 #define Cmfade_deArray     aircraft_->Cmfade_deArray
687 #define Cmfade_CmArray     aircraft_->Cmfade_CmArray
688 #define Cmfade_nAlphaArray aircraft_->Cmfade_nAlphaArray
689 #define Cmfade_nde         aircraft_->Cmfade_nde
690 #define CmfadeI            aircraft_->CmfadeI
691   string Cmfdf;
692   double Cmfdf_dfArray[100];
693   double Cmfdf_CmArray[100];
694   int Cmfdf_ndf;
695   double CmfdfI;
696 #define Cmfdf              aircraft_->Cmfdf
697 #define Cmfdf_dfArray      aircraft_->Cmfdf_dfArray
698 #define Cmfdf_CmArray      aircraft_->Cmfdf_CmArray
699 #define Cmfdf_ndf          aircraft_->Cmfdf_ndf
700 #define CmfdfI             aircraft_->CmfdfI
701   string Cmfadf;
702   double Cmfadf_aArray[100][100];
703   double Cmfadf_dfArray[100];
704   double Cmfadf_CmArray[100][100];
705   int Cmfadf_nAlphaArray[100];
706   int Cmfadf_ndf;
707   double CmfadfI;
708 #define Cmfadf             aircraft_->Cmfadf
709 #define Cmfadf_aArray      aircraft_->Cmfadf_aArray
710 #define Cmfadf_dfArray     aircraft_->Cmfadf_dfArray
711 #define Cmfadf_CmArray     aircraft_->Cmfadf_CmArray
712 #define Cmfadf_nAlphaArray aircraft_->Cmfadf_nAlphaArray
713 #define Cmfadf_ndf         aircraft_->Cmfadf_ndf
714 #define CmfadfI            aircraft_->CmfadfI
715   
716
717   /* Variables (token2) ===========================================*/
718   /* CY ============ Aerodynamic y-force quantities (lateral) =====*/
719   
720   map <string,int> CY_map;
721 #define      CY_map              aircraft_->CY_map            
722   
723   double CYo, CY_beta, CY_p, CY_r, CY_da, CY_dr, CY_dra, CY_bdot;
724 #define CYo      aircraft_->CYo
725 #define CY_beta  aircraft_->CY_beta
726 #define CY_p     aircraft_->CY_p
727 #define CY_r     aircraft_->CY_r
728 #define CY_da    aircraft_->CY_da
729 #define CY_dr    aircraft_->CY_dr
730 #define CY_dra   aircraft_->CY_dra
731 #define CY_bdot  aircraft_->CY_bdot
732   string CYfada;
733   double CYfada_aArray[100][100];
734   double CYfada_daArray[100];
735   double CYfada_CYArray[100][100];
736   int CYfada_nAlphaArray[100];
737   int CYfada_nda;
738   double CYfadaI;
739 #define CYfada             aircraft_->CYfada
740 #define CYfada_aArray      aircraft_->CYfada_aArray
741 #define CYfada_daArray     aircraft_->CYfada_daArray
742 #define CYfada_CYArray     aircraft_->CYfada_CYArray
743 #define CYfada_nAlphaArray aircraft_->CYfada_nAlphaArray
744 #define CYfada_nda         aircraft_->CYfada_nda
745 #define CYfadaI            aircraft_->CYfadaI
746   string CYfbetadr;
747   double CYfbetadr_betaArray[100][100];
748   double CYfbetadr_drArray[100];
749   double CYfbetadr_CYArray[100][100];
750   int CYfbetadr_nBetaArray[100];
751   int CYfbetadr_ndr;
752   double CYfbetadrI;
753 #define CYfbetadr             aircraft_->CYfbetadr
754 #define CYfbetadr_betaArray   aircraft_->CYfbetadr_betaArray
755 #define CYfbetadr_drArray     aircraft_->CYfbetadr_drArray
756 #define CYfbetadr_CYArray     aircraft_->CYfbetadr_CYArray
757 #define CYfbetadr_nBetaArray  aircraft_->CYfbetadr_nBetaArray
758 #define CYfbetadr_ndr         aircraft_->CYfbetadr_ndr
759 #define CYfbetadrI            aircraft_->CYfbetadrI
760
761
762   /* Variables (token2) ===========================================*/
763   /* Cl ============ Aerodynamic l-moment quantities (lateral) ====*/
764   
765   map <string,int> Cl_map;
766 #define      Cl_map              aircraft_->Cl_map            
767   
768   double Clo, Cl_beta, Cl_p, Cl_r, Cl_da, Cl_dr, Cl_daa;
769 #define Clo      aircraft_->Clo
770 #define Cl_beta  aircraft_->Cl_beta
771 #define Cl_p     aircraft_->Cl_p
772 #define Cl_r     aircraft_->Cl_r
773 #define Cl_da    aircraft_->Cl_da
774 #define Cl_dr    aircraft_->Cl_dr
775 #define Cl_daa   aircraft_->Cl_daa
776   string Clfada;
777   double Clfada_aArray[100][100];
778   double Clfada_daArray[100];
779   double Clfada_ClArray[100][100];
780   int Clfada_nAlphaArray[100];
781   int Clfada_nda;
782   double ClfadaI;
783 #define Clfada             aircraft_->Clfada
784 #define Clfada_aArray      aircraft_->Clfada_aArray
785 #define Clfada_daArray     aircraft_->Clfada_daArray
786 #define Clfada_ClArray     aircraft_->Clfada_ClArray
787 #define Clfada_nAlphaArray aircraft_->Clfada_nAlphaArray
788 #define Clfada_nda         aircraft_->Clfada_nda
789 #define ClfadaI            aircraft_->ClfadaI
790   string Clfbetadr;
791   double Clfbetadr_betaArray[100][100];
792   double Clfbetadr_drArray[100];
793   double Clfbetadr_ClArray[100][100];
794   int Clfbetadr_nBetaArray[100];
795   int Clfbetadr_ndr;
796   double ClfbetadrI;
797 #define Clfbetadr             aircraft_->Clfbetadr
798 #define Clfbetadr_betaArray   aircraft_->Clfbetadr_betaArray
799 #define Clfbetadr_drArray     aircraft_->Clfbetadr_drArray
800 #define Clfbetadr_ClArray     aircraft_->Clfbetadr_ClArray
801 #define Clfbetadr_nBetaArray  aircraft_->Clfbetadr_nBetaArray
802 #define Clfbetadr_ndr         aircraft_->Clfbetadr_ndr
803 #define ClfbetadrI            aircraft_->ClfbetadrI
804   
805
806   /* Variables (token2) ===========================================*/
807   /* Cn ============ Aerodynamic n-moment quantities (lateral) ====*/
808   
809   map <string,int> Cn_map;
810 #define      Cn_map              aircraft_->Cn_map
811
812   double Cno, Cn_beta, Cn_p, Cn_r, Cn_da, Cn_dr, Cn_q, Cn_b3;
813 #define Cno      aircraft_->Cno
814 #define Cn_beta  aircraft_->Cn_beta
815 #define Cn_p     aircraft_->Cn_p
816 #define Cn_r     aircraft_->Cn_r
817 #define Cn_da    aircraft_->Cn_da
818 #define Cn_dr    aircraft_->Cn_dr
819 #define Cn_q     aircraft_->Cn_q
820 #define Cn_b3    aircraft_->Cn_b3
821   string Cnfada;
822   double Cnfada_aArray[100][100];
823   double Cnfada_daArray[100];
824   double Cnfada_CnArray[100][100];
825   int Cnfada_nAlphaArray[100];
826   int Cnfada_nda;
827   double CnfadaI;
828 #define Cnfada             aircraft_->Cnfada
829 #define Cnfada_aArray      aircraft_->Cnfada_aArray
830 #define Cnfada_daArray     aircraft_->Cnfada_daArray
831 #define Cnfada_CnArray     aircraft_->Cnfada_CnArray
832 #define Cnfada_nAlphaArray aircraft_->Cnfada_nAlphaArray
833 #define Cnfada_nda         aircraft_->Cnfada_nda
834 #define CnfadaI            aircraft_->CnfadaI
835   string Cnfbetadr;
836   double Cnfbetadr_betaArray[100][100];
837   double Cnfbetadr_drArray[100];
838   double Cnfbetadr_CnArray[100][100];
839   int Cnfbetadr_nBetaArray[100];
840   int Cnfbetadr_ndr;
841   double CnfbetadrI;
842 #define Cnfbetadr             aircraft_->Cnfbetadr
843 #define Cnfbetadr_betaArray   aircraft_->Cnfbetadr_betaArray
844 #define Cnfbetadr_drArray     aircraft_->Cnfbetadr_drArray
845 #define Cnfbetadr_CnArray     aircraft_->Cnfbetadr_CnArray
846 #define Cnfbetadr_nBetaArray  aircraft_->Cnfbetadr_nBetaArray
847 #define Cnfbetadr_ndr         aircraft_->Cnfbetadr_ndr
848 #define CnfbetadrI            aircraft_->CnfbetadrI
849   
850
851   /* Variables (token2) ===========================================*/
852   /* gear ========== Landing gear model quantities ================*/
853   
854   map <string,int> gear_map;
855   
856 #define      gear_map              aircraft_->gear_map
857 #define MAX_GEAR 16
858   bool gear_model[MAX_GEAR];
859   double D_gear_v[MAX_GEAR][3];
860   double cgear[MAX_GEAR];
861   double kgear[MAX_GEAR];
862   double muGear[MAX_GEAR];
863   double strutLength[MAX_GEAR];
864 #define D_gear_v aircraft_->D_gear_v
865 #define gear_model aircraft_->gear_model
866 #define cgear aircraft_->cgear
867 #define kgear aircraft_->kgear
868 #define muGear aircraft_->muGear
869 #define strutLength aircraft_->strutLength
870   
871
872   /* Variables (token2) ===========================================*/
873   /* ice =========== Ice model quantities ======================== */
874   
875   map <string,int> ice_map;
876 #define      ice_map              aircraft_->ice_map            
877
878   bool ice_model, ice_on, beta_model;
879   double iceTime;
880   double transientTime;
881   double eta_ice_final;
882   double eta_ice;
883   double x_probe_wing;
884   double x_probe_tail;
885 #define ice_model      aircraft_->ice_model
886 #define ice_on         aircraft_->ice_on
887 #define beta_model     aircraft_->beta_model
888 #define iceTime        aircraft_->iceTime
889 #define transientTime  aircraft_->transientTime
890 #define eta_ice_final  aircraft_->eta_ice_final
891 #define eta_ice        aircraft_->eta_ice
892 #define x_probe_wing   aircraft_->x_probe_wing
893 #define x_probe_tail   aircraft_->x_probe_tail
894   double kCDo, kCDK, kCD_a, kCD_adot, kCD_q, kCD_de;
895   double CDo_clean, CDK_clean, CD_a_clean, CD_adot_clean, CD_q_clean, CD_de_clean;
896 #define kCDo           aircraft_->kCDo
897 #define kCDK           aircraft_->kCDK
898 #define kCD_a          aircraft_->kCD_a
899 #define kCD_adot       aircraft_->kCD_adot
900 #define kCD_q          aircraft_->kCD_q
901 #define kCD_de         aircraft_->kCD_de
902 #define CDo_clean      aircraft_->CDo_clean
903 #define CDK_clean      aircraft_->CDK_clean
904 #define CD_a_clean     aircraft_->CD_a_clean
905 #define CD_adot_clean  aircraft_->CD_adot_clean
906 #define CD_q_clean     aircraft_->CD_q_clean
907 #define CD_de_clean    aircraft_->CD_de_clean
908   double kCXo, kCXK, kCX_a, kCX_a2, kCX_a3, kCX_adot;
909   double kCX_q, kCX_de, kCX_dr, kCX_df, kCX_adf;
910   double CXo_clean, CXK_clean, CX_a_clean, CX_a2_clean, CX_a3_clean, CX_adot_clean;
911   double CX_q_clean, CX_de_clean, CX_dr_clean, CX_df_clean, CX_adf_clean;
912 #define kCXo           aircraft_->kCXo
913 #define kCXK           aircraft_->kCXK
914 #define kCX_a          aircraft_->kCX_a
915 #define kCX_a2         aircraft_->kCX_a2
916 #define kCX_a3         aircraft_->kCX_a3
917 #define kCX_adot       aircraft_->kCX_adot
918 #define kCX_q          aircraft_->kCX_q
919 #define kCX_de         aircraft_->kCX_de
920 #define kCX_dr         aircraft_->kCX_dr
921 #define kCX_df         aircraft_->kCX_df
922 #define kCX_adf        aircraft_->kCX_adf
923 #define CXo_clean      aircraft_->CXo_clean
924 #define CXK_clean      aircraft_->CXK_clean
925 #define CX_a_clean     aircraft_->CX_a_clean
926 #define CX_a2_clean    aircraft_->CX_a2_clean
927 #define CX_a3_clean    aircraft_->CX_a3_clean
928 #define CX_adot_clean  aircraft_->CX_adot_clean
929 #define CX_q_clean     aircraft_->CX_q_clean
930 #define CX_de_clean    aircraft_->CX_de_clean
931 #define CX_dr_clean    aircraft_->CX_dr_clean
932 #define CX_df_clean    aircraft_->CX_df_clean
933 #define CX_adf_clean   aircraft_->CX_adf_clean
934   double kCLo, kCL_a, kCL_adot, kCL_q, kCL_de;
935   double CLo_clean, CL_a_clean, CL_adot_clean, CL_q_clean, CL_de_clean;
936 #define kCLo           aircraft_->kCLo
937 #define kCL_a          aircraft_->kCL_a
938 #define kCL_adot       aircraft_->kCL_adot
939 #define kCL_q          aircraft_->kCL_q
940 #define kCL_de         aircraft_->kCL_de
941 #define CLo_clean      aircraft_->CLo_clean
942 #define CL_a_clean     aircraft_->CL_a_clean
943 #define CL_adot_clean  aircraft_->CL_adot_clean
944 #define CL_q_clean     aircraft_->CL_q_clean
945 #define CL_de_clean    aircraft_->CL_de_clean
946   double kCZo, kCZ_a, kCZ_a2, kCZ_a3, kCZ_adot, kCZ_q, kCZ_de, kCZ_deb2, kCZ_df, kCZ_adf;
947   double CZo_clean, CZ_a_clean, CZ_a2_clean, CZ_a3_clean, CZ_adot_clean;
948   double CZ_q_clean, CZ_de_clean, CZ_deb2_clean, CZ_df_clean, CZ_adf_clean;
949 #define kCZo           aircraft_->kCZo
950 #define kCZ_a          aircraft_->kCZ_a
951 #define kCZ_a2         aircraft_->kCZ_a2
952 #define kCZ_a3         aircraft_->kCZ_a3
953 #define kCZ_adot       aircraft_->kCZ_adot
954 #define kCZ_q          aircraft_->kCZ_q
955 #define kCZ_de         aircraft_->kCZ_de
956 #define kCZ_deb2       aircraft_->kCZ_deb2
957 #define kCZ_df         aircraft_->kCZ_df
958 #define kCZ_adf        aircraft_->kCZ_adf
959 #define CZo_clean      aircraft_->CZo_clean
960 #define CZ_a_clean     aircraft_->CZ_a_clean
961 #define CZ_a2_clean    aircraft_->CZ_a2_clean
962 #define CZ_a3_clean    aircraft_->CZ_a3_clean
963 #define CZ_adot_clean  aircraft_->CZ_adot_clean
964 #define CZ_q_clean     aircraft_->CZ_q_clean
965 #define CZ_de_clean    aircraft_->CZ_de_clean
966 #define CZ_deb2_clean  aircraft_->CZ_deb2_clean
967 #define CZ_df_clean    aircraft_->CZ_df_clean
968 #define CZ_adf_clean   aircraft_->CZ_adf_clean
969   double kCmo, kCm_a, kCm_a2, kCm_adot, kCm_q, kCm_de, kCm_b2, kCm_r, kCm_df;
970   double Cmo_clean, Cm_a_clean, Cm_a2_clean, Cm_adot_clean, Cm_q_clean;
971   double Cm_de_clean, Cm_b2_clean, Cm_r_clean, Cm_df_clean;
972 #define kCmo           aircraft_->kCmo
973 #define kCm_a          aircraft_->kCm_a
974 #define kCm_a2         aircraft_->kCm_a2
975 #define kCm_adot       aircraft_->kCm_adot
976 #define kCm_q          aircraft_->kCm_q
977 #define kCm_de         aircraft_->kCm_de
978 #define kCm_b2         aircraft_->kCm_b2
979 #define kCm_r          aircraft_->kCm_r
980 #define kCm_df         aircraft_->kCm_df
981 #define Cmo_clean      aircraft_->Cmo_clean
982 #define Cm_a_clean     aircraft_->Cm_a_clean
983 #define Cm_a2_clean    aircraft_->Cm_a2_clean
984 #define Cm_adot_clean  aircraft_->Cm_adot_clean
985 #define Cm_q_clean     aircraft_->Cm_q_clean
986 #define Cm_de_clean    aircraft_->Cm_de_clean
987 #define Cm_b2_clean    aircraft_->Cm_b2_clean
988 #define Cm_r_clean     aircraft_->Cm_r_clean
989 #define Cm_df_clean    aircraft_->Cm_df_clean
990   double kCYo, kCY_beta, kCY_p, kCY_r, kCY_da, kCY_dr, kCY_dra, kCY_bdot;
991   double CYo_clean, CY_beta_clean, CY_p_clean, CY_r_clean, CY_da_clean;
992   double CY_dr_clean, CY_dra_clean, CY_bdot_clean;
993 #define kCYo           aircraft_->kCYo
994 #define kCY_beta       aircraft_->kCY_beta
995 #define kCY_p          aircraft_->kCY_p
996 #define kCY_r          aircraft_->kCY_r
997 #define kCY_da         aircraft_->kCY_da
998 #define kCY_dr         aircraft_->kCY_dr
999 #define kCY_dra        aircraft_->kCY_dra
1000 #define kCY_bdot       aircraft_->kCY_bdot
1001 #define CYo_clean      aircraft_->CYo_clean
1002 #define CY_beta_clean  aircraft_->CY_beta_clean
1003 #define CY_p_clean     aircraft_->CY_p_clean
1004 #define CY_r_clean     aircraft_->CY_r_clean
1005 #define CY_da_clean    aircraft_->CY_da_clean
1006 #define CY_dr_clean    aircraft_->CY_dr_clean
1007 #define CY_dra_clean   aircraft_->CY_dra_clean
1008 #define CY_bdot_clean  aircraft_->CY_bdot_clean
1009   double kClo, kCl_beta, kCl_p, kCl_r, kCl_da, kCl_dr, kCl_daa;
1010   double Clo_clean, Cl_beta_clean, Cl_p_clean, Cl_r_clean, Cl_da_clean;
1011   double Cl_dr_clean, Cl_daa_clean;
1012 #define kClo           aircraft_->kClo
1013 #define kCl_beta       aircraft_->kCl_beta
1014 #define kCl_p          aircraft_->kCl_p
1015 #define kCl_r          aircraft_->kCl_r
1016 #define kCl_da         aircraft_->kCl_da
1017 #define kCl_dr         aircraft_->kCl_dr
1018 #define kCl_daa        aircraft_->kCl_daa
1019 #define Clo_clean      aircraft_->Clo_clean
1020 #define Cl_beta_clean  aircraft_->Cl_beta_clean
1021 #define Cl_p_clean     aircraft_->Cl_p_clean
1022 #define Cl_r_clean     aircraft_->Cl_r_clean
1023 #define Cl_da_clean    aircraft_->Cl_da_clean
1024 #define Cl_dr_clean    aircraft_->Cl_dr_clean
1025 #define Cl_daa_clean   aircraft_->Cl_daa_clean
1026   double kCno, kCn_beta, kCn_p, kCn_r, kCn_da, kCn_dr, kCn_q, kCn_b3;
1027   double Cno_clean, Cn_beta_clean, Cn_p_clean, Cn_r_clean, Cn_da_clean;
1028   double Cn_dr_clean, Cn_q_clean, Cn_b3_clean;
1029 #define kCno           aircraft_->kCno
1030 #define kCn_beta       aircraft_->kCn_beta
1031 #define kCn_p          aircraft_->kCn_p
1032 #define kCn_r          aircraft_->kCn_r
1033 #define kCn_da         aircraft_->kCn_da
1034 #define kCn_dr         aircraft_->kCn_dr
1035 #define kCn_q          aircraft_->kCn_q
1036 #define kCn_b3         aircraft_->kCn_b3
1037 #define Cno_clean      aircraft_->Cno_clean
1038 #define Cn_beta_clean  aircraft_->Cn_beta_clean
1039 #define Cn_p_clean     aircraft_->Cn_p_clean
1040 #define Cn_r_clean     aircraft_->Cn_r_clean
1041 #define Cn_da_clean    aircraft_->Cn_da_clean
1042 #define Cn_dr_clean    aircraft_->Cn_dr_clean
1043 #define Cn_q_clean     aircraft_->Cn_q_clean
1044 #define Cn_b3_clean    aircraft_->Cn_b3_clean
1045
1046
1047   /* Variables (token2) ===========================================*/
1048   /* record ======== Record desired quantites to file =============*/
1049   
1050   map <string,int> record_map;
1051 #define      record_map              aircraft_->record_map
1052
1053   /***** Angles ******/
1054   double Alpha_deg, Alpha_dot_deg, Beta_deg, Beta_dot_deg;
1055 #define Alpha_deg       aircraft_->Alpha_deg
1056 #define Alpha_dot_deg   aircraft_->Alpha_dot_deg
1057 #define Beta_deg        aircraft_->Beta_deg
1058 #define Beta_dot_deg    aircraft_->Beta_dot_deg
1059   double Gamma_vert_deg, Gamma_horiz_deg;
1060 #define Gamma_vert_deg  aircraft_->Gamma_vert_deg
1061 #define Gamma_horiz_deg aircraft_->Gamma_horiz_deg
1062
1063   /** Control Inputs **/
1064   double Long_trim_deg, elevator_tab, elevator_deg, aileron_deg, rudder_deg;
1065 #define Long_trim_deg   aircraft_->Long_trim_deg
1066 #define elevator_tab    aircraft_->elevator_tab
1067 #define elevator_deg    aircraft_->elevator_deg
1068 #define aileron_deg     aircraft_->aileron_deg
1069 #define rudder_deg      aircraft_->rudder_deg
1070   double flap_deg;
1071 #define flap_deg        aircraft_->flap_deg
1072
1073   /***** Forces ******/
1074   double F_X_wind, F_Y_wind, F_Z_wind;
1075 #define F_X_wind aircraft_->F_X_wind
1076 #define F_Y_wind aircraft_->F_Y_wind
1077 #define F_Z_wind aircraft_->F_Z_wind
1078   double Lift_clean_wing, Lift_iced_wing;
1079   double Lift_clean_tail, Lift_iced_tail;
1080 #define Lift_clean_wing      aircraft_->Lift_clean_wing
1081 #define Lift_iced_wing       aircraft_->Lift_iced_wing
1082 #define Lift_clean_tail      aircraft_->Lift_clean_tail
1083 #define Lift_iced_tail       aircraft_->Lift_iced_tail
1084   double Gamma_clean_wing, Gamma_iced_wing;
1085   double Gamma_clean_tail, Gamma_iced_tail;
1086 #define Gamma_clean_wing     aircraft_->Gamma_clean_wing
1087 #define Gamma_iced_wing      aircraft_->Gamma_iced_wing
1088 #define Gamma_clean_tail     aircraft_->Gamma_clean_tail
1089 #define Gamma_iced_tail      aircraft_->Gamma_iced_tail
1090   double w_clean_wing, w_iced_wing;
1091   double w_clean_tail, w_iced_tail;
1092 #define w_clean_wing         aircraft_->w_clean_wing
1093 #define w_iced_wing          aircraft_->w_iced_wing
1094 #define w_clean_tail         aircraft_->w_clean_tail
1095 #define w_iced_tail          aircraft_->w_iced_tail
1096   double V_total_clean_wing, V_total_iced_wing;
1097   double V_total_clean_tail, V_total_iced_tail;
1098 #define V_total_clean_wing   aircraft_->V_total_clean_wing
1099 #define V_total_iced_wing    aircraft_->V_total_iced_wing
1100 #define V_total_clean_tail   aircraft_->V_total_clean_tail
1101 #define V_total_iced_tail    aircraft_->V_total_iced_tail
1102   double beta_flow_clean_wing, beta_flow_clean_wing_deg;
1103   double beta_flow_iced_wing, beta_flow_iced_wing_deg;
1104   double beta_flow_clean_tail, beta_flow_clean_tail_deg;
1105   double beta_flow_iced_tail, beta_flow_iced_tail_deg;
1106 #define beta_flow_clean_wing     aircraft_->beta_flow_clean_wing
1107 #define beta_flow_clean_wing_deg aircraft_->beta_flow_clean_wing_deg
1108 #define beta_flow_iced_wing      aircraft_->beta_flow_iced_wing
1109 #define beta_flow_iced_wing_deg  aircraft_->beta_flow_iced_wing_deg
1110 #define beta_flow_clean_tail     aircraft_->beta_flow_clean_tail
1111 #define beta_flow_clean_tail_deg aircraft_->beta_flow_clean_tail_deg
1112 #define beta_flow_iced_tail      aircraft_->beta_flow_iced_tail
1113 #define beta_flow_iced_tail_deg  aircraft_->beta_flow_iced_tail_deg
1114   double Dbeta_flow_wing, Dbeta_flow_wing_deg;
1115   double Dbeta_flow_tail, Dbeta_flow_tail_deg;
1116 #define Dbeta_flow_wing      aircraft_->Dbeta_flow_wing
1117 #define Dbeta_flow_wing_deg  aircraft_->Dbeta_flow_wing_deg
1118 #define Dbeta_flow_tail      aircraft_->Dbeta_flow_tail
1119 #define Dbeta_flow_tail_deg  aircraft_->Dbeta_flow_tail_deg
1120   double pct_beta_flow_wing, pct_beta_flow_tail;
1121 #define pct_beta_flow_wing   aircraft_->pct_beta_flow_wing
1122 #define pct_beta_flow_tail   aircraft_->pct_beta_flow_tail
1123
1124
1125   /* Variables (token2) ===========================================*/
1126   /* misc ========== Miscellaneous input commands =================*/
1127
1128   map <string,int> misc_map;
1129 #define      misc_map        aircraft_->misc_map       
1130
1131   double simpleHingeMomentCoef;
1132 #define simpleHingeMomentCoef    aircraft_->simpleHingeMomentCoef
1133   string dfTimefdf;
1134   double dfTimefdf_dfArray[100];
1135   double dfTimefdf_TimeArray[100];
1136   int dfTimefdf_ndf;
1137 #define dfTimefdf              aircraft_->dfTimefdf
1138 #define dfTimefdf_dfArray      aircraft_->dfTimefdf_dfArray
1139 #define dfTimefdf_TimeArray    aircraft_->dfTimefdf_TimeArray
1140 #define dfTimefdf_ndf          aircraft_->dfTimefdf_ndf
1141
1142
1143   /* Other variables (not tokens) =================================*/
1144
1145   double convert_x, convert_y, convert_z;
1146 #define convert_x aircraft_->convert_x
1147 #define convert_y aircraft_->convert_y
1148 #define convert_z aircraft_->convert_z
1149
1150   double cbar_2U, b_2U, ch_2U;
1151 #define cbar_2U   aircraft_->cbar_2U
1152 #define b_2U      aircraft_->b_2U
1153 #define ch_2U     aircraft_->ch_2U
1154
1155   int ndf;
1156   double dfArray[100];
1157   double TimeArray[100];
1158 #define ndf       aircraft_->ndf
1159 #define dfArray   aircraft_->dfArray
1160 #define TimeArray aircraft_->TimeArray
1161
1162
1163   ofstream fout;
1164   
1165 #define fout aircraft_->fout
1166   
1167   
1168 } AIRCRAFT;
1169
1170 extern AIRCRAFT *aircraft_;    // usually defined in the first program that includes uiuc_aircraft.h
1171
1172 #endif  // endif _AIRCRAFT_H