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