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