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