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