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