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