]> git.mxchange.org Git - flightgear.git/blob - src/FDM/UIUCModel/uiuc_aircraft.h
UIUC flight model contribution. This is based on LaRCsim, but can read
[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
36 ----------------------------------------------------------------------
37
38  AUTHOR(S):    Bipin Sehgal       <bsehgal@uiuc.edu>
39                Jeff Scott         <jscott@mail.com>
40
41 ----------------------------------------------------------------------
42
43  VARIABLES:
44
45 ----------------------------------------------------------------------
46
47  INPUTS:       none
48
49 ----------------------------------------------------------------------
50
51  OUTPUTS:      none
52
53 ----------------------------------------------------------------------
54
55  CALLED BY:    uiuc_1DdataFileReader.cpp
56                uiuc_2DdataFileReader.cpp
57                uiuc_aerodeflections.cpp
58                uiuc_coefficients.cpp
59                uiuc_engine.cpp
60                uiuc_initializemaps.cpp
61                uiuc_menu.cpp
62                uiuc_recorder.cpp
63
64 ----------------------------------------------------------------------
65
66  CALLS TO:     none
67
68 ----------------------------------------------------------------------
69
70  COPYRIGHT:    (C) 2000 by Michael Selig
71
72  This program is free software; you can redistribute it and/or
73  modify it under the terms of the GNU General Public License
74  as published by the Free Software Foundation.
75
76  This program is distributed in the hope that it will be useful,
77  but WITHOUT ANY WARRANTY; without even the implied warranty of
78  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
79  GNU General Public License for more details.
80
81  You should have received a copy of the GNU General Public License
82  along with this program; if not, write to the Free Software
83  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
84  USA or view http://www.gnu.org/copyleft/gpl.html.
85
86 **********************************************************************/
87
88
89 #ifndef _AIRCRAFT_H_
90 #define _AIRCRAFT_H_
91
92 #include <map>
93 #include <iostream>
94 #include "uiuc_parsefile.h"
95
96 typedef stack :: iterator LIST;
97
98 /* Add more keywords here if required*/
99 enum {init_flag = 1000, geometry_flag, controlSurface_flag, controlsMixer_flag, 
100       mass_flag, engine_flag, CD_flag, CL_flag, Cm_flag, CY_flag, Cl_flag, 
101       Cn_flag, gear_flag, ice_flag, record_flag};
102
103 // init ======= Initial values for equation of motion
104 enum {Dx_pilot_flag = 2000, Dy_pilot_flag, Dz_pilot_flag, 
105       Dx_cg_flag, Dy_cg_flag, Dz_cg_flag, 
106       V_north_flag, V_east_flag, V_down_flag, 
107       P_body_flag, Q_body_flag, R_body_flag, 
108       Phi_flag, Theta_flag, Psi_flag};
109
110 // geometry === Aircraft-specific geometric quantities
111 enum {bw_flag = 3000, cbar_flag, Sw_flag};
112
113 // controlSurface = Control surface deflections and properties
114 enum {de_flag = 4000, da_flag, dr_flag};
115
116 // controlsMixer == Controls mixer
117 enum {nomix_flag = 14000};
118
119 //mass ======== Aircraft-specific mass properties
120 enum {Mass_flag = 5000, I_xx_flag, I_yy_flag, I_zz_flag, I_xz_flag};
121
122 // engine ===== Propulsion data
123 enum {simpleSingle_flag = 6000, c172_flag};
124
125 // CD ========= Aerodynamic x-force quantities (longitudinal)
126 enum {CDo_flag = 7000, CDK_flag, CD_a_flag, CD_de_flag, CDfa_flag, CDfade_flag};
127
128 // CL ========= Aerodynamic z-force quantities (longitudinal)
129 enum {CLo_flag = 8000, CL_a_flag, CL_adot_flag, CL_q_flag, CL_de_flag, CLfa_flag, CLfade_flag};
130
131 // Cm ========= Aerodynamic m-moment quantities (longitudinal)
132 enum {Cmo_flag = 9000, Cm_a_flag, Cm_adot_flag, Cm_q_flag, Cm_de_flag, Cmfade_flag};
133
134 // CY ========= Aerodynamic y-force quantities (lateral)
135 enum {CYo_flag = 10000, CY_beta_flag, CY_p_flag, CY_r_flag, CY_da_flag, CY_dr_flag, 
136       CYfada_flag, CYfbetadr_flag};
137
138 // Cl ========= Aerodynamic l-moment quantities (lateral)
139 enum {Clo_flag = 11000, Cl_beta_flag, Cl_betafCL_flag, Cl_p_flag, Cl_r_flag, Cl_rfCL_flag, 
140       Cl_da_flag, Cl_dr_flag, Clfada_flag, Clfbetadr_flag};
141
142 // Cn ========= Aerodynamic n-moment quantities (lateral)
143 enum {Cno_flag = 12000, Cn_beta_flag, Cn_betafCL_flag, Cn_p_flag, Cn_pfCL_flag, Cn_r_flag, 
144       Cn_rfCL_flag, Cn_da_flag, Cn_dr_flag, Cn_drfCL_flag, Cnfada_flag, Cnfbetadr_flag};
145
146 // gear ======= Landing gear model quantities
147
148 // ice ======== Ice model quantities
149 enum {iceTime_flag = 15000, transientTime_flag, eta_final_flag, 
150       kCDo_flag, kCDK_flag, kCD_a_flag, kCD_de_flag, 
151       kCLo_flag, kCL_a_flag, kCL_adot_flag, kCL_q_flag, kCL_de_flag, 
152       kCmo_flag, kCm_a_flag, kCm_adot_flag, kCm_q_flag, kCm_de_flag, 
153       kCYo_flag, kCY_beta_flag, kCY_p_flag, kCY_r_flag, kCY_da_flag, kCY_dr_flag, 
154       kClo_flag, kCl_beta_flag, kCl_p_flag, kCl_r_flag, kCl_da_flag, kCl_dr_flag, 
155       kCno_flag, kCn_beta_flag, kCn_p_flag, kCn_r_flag, kCn_da_flag, kCn_dr_flag};
156
157 // record ===== Record desired quantites to file
158
159 enum {Dx_pilot_record = 13000, Dy_pilot_record, Dz_pilot_record, 
160       Dx_cg_record, Dy_cg_record, Dz_cg_record, 
161       V_north_record, V_east_record, V_down_record,
162       V_rel_wind_record, Dynamic_pressure_record, 
163       Alpha_record, Alpha_dot_record, Beta_record, Beta_dot_record, Gamma_record,
164       P_body_record, Q_body_record, R_body_record, 
165       Phi_record, Theta_record, Psi_record, Theta_dot_record, 
166       density_record, Mass_record, Simtime_record, dt_record, 
167       elevator_record, aileron_record, rudder_record, 
168       CD_record, CDfaI_record, CDfadeI_record, 
169       CL_record, CLfaI_record, CLfadeI_record, 
170       Cm_record, CmfadeI_record, 
171       CY_record, CYfadaI_record, CYfbetadrI_record, 
172       Cl_record, ClfadaI_record, ClfbetadrI_record, 
173       Cn_record, CnfadaI_record, CnfbetadrI_record,
174       F_X_wind_record, F_Y_wind_record, F_Z_wind_record, 
175       F_X_aero_record, F_Y_aero_record, F_Z_aero_record,
176       F_X_engine_record, F_Y_engine_record, F_Z_engine_record, 
177       F_X_gear_record, F_Y_gear_record, F_Z_gear_record, 
178       F_X_record, F_Y_record, F_Z_record, 
179       M_l_aero_record, M_m_aero_record, M_n_aero_record, 
180       M_l_engine_record, M_m_engine_record, M_n_engine_record, 
181       M_l_gear_record, M_m_gear_record, M_n_gear_record, 
182       M_l_rp_record, M_m_rp_record, M_n_rp_record};
183
184 typedef struct
185 {
186   // ParseFile stuff [] Bipin to add more comments
187   ParseFile *airplane;
188 #define  airplane        aircraft_->airplane
189   ParseFile *initParts;
190 #define  initParts       aircraft_->initParts
191   ParseFile *geometryParts;
192 #define  geometryParts   aircraft_->geometryParts
193   ParseFile *massParts;
194 #define  massParts       aircraft_->massParts
195   ParseFile *aeroParts;
196 #define  aeroParts       aircraft_->aeroParts
197   ParseFile *engineParts;
198 #define  engineParts     aircraft_->engineParts
199   ParseFile *gearParts;
200 #define  gearParts       aircraft_->gearParts
201   ParseFile *recordParts;
202 #define  recordParts     aircraft_->recordParts
203   
204   /*= Keywords (token1) ===========================================*/
205   map <string,int>      Keyword_map;
206 #define      Keyword_map         aircraft_->Keyword_map       
207
208   double CL;
209   double CD;
210   double Cm;
211   double CY;
212   double Cl;
213   double Cn;
214
215 #define CL  aircraft_->CL
216 #define CD  aircraft_->CD
217 #define Cm  aircraft_->Cm
218 #define CY  aircraft_->CY
219 #define Cl  aircraft_->Cl
220 #define Cn  aircraft_->Cn
221   
222   /*========================================*/
223   /* Variables (token2) - 14 groups (000210)*/
224   /*========================================*/
225   
226   /* Variables (token2) ===========================================*/
227   /* init ========== Initial values for equations of motion =======*/
228   
229   map <string,int> init_map;
230 #define      init_map            aircraft_->init_map          
231   
232   /* Variables (token2) ===========================================*/
233   /* geometry ====== Aircraft-specific geometric quantities =======*/
234   
235   map <string,int> geometry_map;
236 #define      geometry_map        aircraft_->geometry_map       
237   
238   double bw;
239   double cbar;
240   double Sw;
241 #define bw   aircraft_->bw
242 #define cbar aircraft_->cbar
243 #define Sw   aircraft_->Sw       
244   
245   /* Variables (token2) ===========================================*/
246   /* controlSurface  Control surface deflections and properties ===*/
247   
248   map <string,int> controlSurface_map;
249 #define      controlSurface_map  aircraft_->controlSurface_map
250   
251   double demax;
252   double demin;
253   double damax;
254   double damin;
255   double drmax;
256   double drmin;
257 #define demax  aircraft_->demax
258 #define demin  aircraft_->demin
259 #define damax  aircraft_->damax
260 #define damin  aircraft_->damin
261 #define drmax  aircraft_->drmax
262 #define drmin  aircraft_->drmin
263
264   double aileron;
265   double elevator;
266   double rudder;
267 #define aileron   aircraft_->aileron
268 #define elevator  aircraft_->elevator
269 #define rudder    aircraft_->rudder
270
271   
272   /* Variables (token2) ===========================================*/
273   /* controlsMixer = Control mixer ================================*/
274   
275   map <string,int> controlsMixer_map;
276 #define      controlsMixer_map  aircraft_->controlsMixer_map
277   
278   double nomix;
279 #define nomix  aircraft_->nomix
280
281   
282   /* Variables (token2) ===========================================*/
283   /* mass =========== Aircraft-specific mass properties ===========*/
284   
285   map <string,int> mass_map;
286 #define      mass_map            aircraft_->mass_map          
287   
288   
289   /* Variables (token2) ===========================================*/
290   /* engine ======== Propulsion data ==============================*/
291   
292   map <string,int> engine_map;
293 #define      engine_map            aircraft_->engine_map          
294   
295   double simpleSingleMaxThrust;
296 #define simpleSingleMaxThrust  aircraft_->simpleSingleMaxThrust
297   
298   /* Variables (token2) ===========================================*/
299   /* CD ============ Aerodynamic x-force quantities (longitudinal) */
300   
301   map <string,int> CD_map;
302 #define      CD_map              aircraft_->CD_map            
303   
304   double CDo;
305   double CDK;
306   double CD_a;
307   double CD_de;
308 #define CDo      aircraft_->CDo
309 #define CDK      aircraft_->CDK
310 #define CD_a     aircraft_->CD_a
311 #define CD_de    aircraft_->CD_de
312   string CDfa;
313   int CDfaData;
314   double CDfa_aArray[100];
315   double CDfa_CDArray[100];
316   int CDfa_nAlpha;
317   double CDfaI;
318 #define CDfa               aircraft_->CDfa
319 #define CDfaData           aircraft_->CDfaData
320 #define CDfa_aArray        aircraft_->CDfa_aArray
321 #define CDfa_CDArray       aircraft_->CDfa_CDArray
322 #define CDfa_nAlpha        aircraft_->CDfa_nAlpha
323 #define CDfaI              aircraft_->CDfaI
324   string CDfade;
325   int CDfadeData;
326   double CDfade_aArray[100][100];
327   double CDfade_deArray[100];
328   double CDfade_CDArray[100][100];
329   int CDfade_nAlphaArray[100];
330   int CDfade_nde;
331   double CDfadeI;
332 #define CDfade             aircraft_->CDfade
333 #define CDfadeData         aircraft_->CDfadeData
334 #define CDfade_aArray      aircraft_->CDfade_aArray
335 #define CDfade_deArray     aircraft_->CDfade_deArray
336 #define CDfade_CDArray     aircraft_->CDfade_CDArray
337 #define CDfade_nAlphaArray aircraft_->CDfade_nAlphaArray
338 #define CDfade_nde         aircraft_->CDfade_nde
339 #define CDfadeI            aircraft_->CDfadeI
340   
341   /* Variables (token2) ===========================================*/
342   /* CL ============ Aerodynamic z-force quantities (longitudinal) */
343   
344   map <string,int> CL_map;
345 #define      CL_map              aircraft_->CL_map            
346   
347   double CLo;
348   double CL_a;
349   double CL_adot;
350   double CL_q;
351   double CL_de;
352 #define CLo      aircraft_->CLo
353 #define CL_a     aircraft_->CL_a
354 #define CL_adot  aircraft_->CL_adot
355 #define CL_q     aircraft_->CL_q
356 #define CL_de    aircraft_->CL_de
357   string CLfa;
358   int CLfaData;
359   double CLfa_aArray[100];
360   double CLfa_CLArray[100];
361   int CLfa_nAlpha;
362   double CLfaI;
363 #define CLfa               aircraft_->CLfa
364 #define CLfaData           aircraft_->CLfaData
365 #define CLfa_aArray        aircraft_->CLfa_aArray
366 #define CLfa_CLArray       aircraft_->CLfa_CLArray
367 #define CLfa_nAlpha        aircraft_->CLfa_nAlpha
368 #define CLfaI              aircraft_->CLfaI
369   string CLfade;
370   int CLfadeData;
371   double CLfade_aArray[100][100];
372   double CLfade_deArray[100];
373   double CLfade_CLArray[100][100];
374   int CLfade_nAlphaArray[100];
375   int CLfade_nde;
376   double CLfadeI;
377 #define CLfade             aircraft_->CLfade
378 #define CLfadeData         aircraft_->CLfadeData
379 #define CLfade_aArray      aircraft_->CLfade_aArray
380 #define CLfade_deArray     aircraft_->CLfade_deArray
381 #define CLfade_CLArray     aircraft_->CLfade_CLArray
382 #define CLfade_nAlphaArray aircraft_->CLfade_nAlphaArray
383 #define CLfade_nde         aircraft_->CLfade_nde
384 #define CLfadeI            aircraft_->CLfadeI
385
386   /* Variables (token2) ===========================================*/
387   /* Cm ============ Aerodynamic m-moment quantities (longitudinal) */
388   
389   map <string,int> Cm_map;
390 #define      Cm_map              aircraft_->Cm_map            
391   
392   double Cmo;
393   double Cm_a;
394   double Cm_adot;
395   double Cm_q;
396   double Cm_de;
397 #define Cmo      aircraft_->Cmo
398 #define Cm_a     aircraft_->Cm_a
399 #define Cm_adot  aircraft_->Cm_adot
400 #define Cm_q     aircraft_->Cm_q
401 #define Cm_de    aircraft_->Cm_de
402   string Cmfade;
403   int CmfadeData;
404   double Cmfade_aArray[100][100];
405   double Cmfade_deArray[100];
406   double Cmfade_CmArray[100][100];
407   int Cmfade_nAlphaArray[100];
408   int Cmfade_nde;
409   double CmfadeI;
410 #define Cmfade             aircraft_->Cmfade
411 #define CmfadeData         aircraft_->CmfadeData
412 #define Cmfade_aArray      aircraft_->Cmfade_aArray
413 #define Cmfade_deArray     aircraft_->Cmfade_deArray
414 #define Cmfade_CmArray     aircraft_->Cmfade_CmArray
415 #define Cmfade_nAlphaArray aircraft_->Cmfade_nAlphaArray
416 #define Cmfade_nde         aircraft_->Cmfade_nde
417 #define CmfadeI            aircraft_->CmfadeI
418   
419   /* Variables (token2) ===========================================*/
420   /* CY ============ Aerodynamic y-force quantities (lateral) =====*/
421   
422   map <string,int> CY_map;
423 #define      CY_map              aircraft_->CY_map            
424   
425   double CYo;
426   double CY_beta;
427   double CY_p;
428   double CY_r;
429   double CY_da;
430   double CY_dr;
431 #define CYo      aircraft_->CYo
432 #define CY_beta  aircraft_->CY_beta
433 #define CY_p     aircraft_->CY_p
434 #define CY_r     aircraft_->CY_r
435 #define CY_da    aircraft_->CY_da
436 #define CY_dr    aircraft_->CY_dr
437   string CYfada;
438   int CYfadaData;
439   double CYfada_aArray[100][100];
440   double CYfada_daArray[100];
441   double CYfada_CYArray[100][100];
442   int CYfada_nAlphaArray[100];
443   int CYfada_nda;
444   double CYfadaI;
445 #define CYfada             aircraft_->CYfada
446 #define CYfadaData         aircraft_->CYfadaData
447 #define CYfada_aArray      aircraft_->CYfada_aArray
448 #define CYfada_daArray     aircraft_->CYfada_daArray
449 #define CYfada_CYArray     aircraft_->CYfada_CYArray
450 #define CYfada_nAlphaArray aircraft_->CYfada_nAlphaArray
451 #define CYfada_nda         aircraft_->CYfada_nda
452 #define CYfadaI            aircraft_->CYfadaI
453   string CYfbetadr;
454   int CYfbetadrData;
455   double CYfbetadr_betaArray[100][100];
456   double CYfbetadr_drArray[100];
457   double CYfbetadr_CYArray[100][100];
458   int CYfbetadr_nBetaArray[100];
459   int CYfbetadr_ndr;
460   double CYfbetadrI;
461 #define CYfbetadr             aircraft_->CYfbetadr
462 #define CYfbetadrData         aircraft_->CYfbetadrData
463 #define CYfbetadr_betaArray   aircraft_->CYfbetadr_betaArray
464 #define CYfbetadr_drArray     aircraft_->CYfbetadr_drArray
465 #define CYfbetadr_CYArray     aircraft_->CYfbetadr_CYArray
466 #define CYfbetadr_nBetaArray  aircraft_->CYfbetadr_nBetaArray
467 #define CYfbetadr_ndr         aircraft_->CYfbetadr_ndr
468 #define CYfbetadrI            aircraft_->CYfbetadrI
469
470   /* Variables (token2) ===========================================*/
471   /* Cl ============ Aerodynamic l-moment quantities (lateral) ====*/
472   
473   map <string,int> Cl_map;
474 #define      Cl_map              aircraft_->Cl_map            
475   
476   double Clo;
477   double Cl_beta;
478   double Cl_betafCL;
479   double Cl_p;
480   double Cl_r;
481   double Cl_rfCL;
482   double Cl_da;
483   double Cl_dr;
484 #define Clo      aircraft_->Clo
485 #define Cl_beta  aircraft_->Cl_beta
486 #define Cl_betafCL aircraft_->Cl_betafCL
487 #define Cl_p     aircraft_->Cl_p
488 #define Cl_r     aircraft_->Cl_r
489 #define Cl_rfCL  aircraft_->Cl_rfCL
490 #define Cl_da    aircraft_->Cl_da
491 #define Cl_dr    aircraft_->Cl_dr
492   string Clfada;
493   int ClfadaData;
494   double Clfada_aArray[100][100];
495   double Clfada_daArray[100];
496   double Clfada_ClArray[100][100];
497   int Clfada_nAlphaArray[100];
498   int Clfada_nda;
499   double ClfadaI;
500 #define Clfada             aircraft_->Clfada
501 #define ClfadaData         aircraft_->ClfadaData
502 #define Clfada_aArray      aircraft_->Clfada_aArray
503 #define Clfada_daArray     aircraft_->Clfada_daArray
504 #define Clfada_ClArray     aircraft_->Clfada_ClArray
505 #define Clfada_nAlphaArray aircraft_->Clfada_nAlphaArray
506 #define Clfada_nda         aircraft_->Clfada_nda
507 #define ClfadaI            aircraft_->ClfadaI
508   string Clfbetadr;
509   int ClfbetadrData;
510   double Clfbetadr_betaArray[100][100];
511   double Clfbetadr_drArray[100];
512   double Clfbetadr_ClArray[100][100];
513   int Clfbetadr_nBetaArray[100];
514   int Clfbetadr_ndr;
515   double ClfbetadrI;
516 #define Clfbetadr             aircraft_->Clfbetadr
517 #define ClfbetadrData         aircraft_->ClfbetadrData
518 #define Clfbetadr_betaArray   aircraft_->Clfbetadr_betaArray
519 #define Clfbetadr_drArray     aircraft_->Clfbetadr_drArray
520 #define Clfbetadr_ClArray     aircraft_->Clfbetadr_ClArray
521 #define Clfbetadr_nBetaArray  aircraft_->Clfbetadr_nBetaArray
522 #define Clfbetadr_ndr         aircraft_->Clfbetadr_ndr
523 #define ClfbetadrI            aircraft_->ClfbetadrI
524   
525   /* Variables (token2) ===========================================*/
526   /* Cn ============ Aerodynamic n-moment quantities (lateral) ====*/
527   
528   map <string,int> Cn_map;
529 #define      Cn_map              aircraft_->Cn_map
530
531   double Cno;
532   double Cn_beta;
533   double Cn_p;
534   double Cn_r;
535   double Cn_da;
536   double Cn_dr;
537 #define Cno      aircraft_->Cno
538 #define Cn_beta  aircraft_->Cn_beta
539 #define Cn_p     aircraft_->Cn_p
540 #define Cn_r     aircraft_->Cn_r
541 #define Cn_da    aircraft_->Cn_da
542 #define Cn_dr    aircraft_->Cn_dr
543   string Cnfada;
544   int CnfadaData;
545   double Cnfada_aArray[100][100];
546   double Cnfada_daArray[100];
547   double Cnfada_CnArray[100][100];
548   int Cnfada_nAlphaArray[100];
549   int Cnfada_nda;
550   double CnfadaI;
551 #define Cnfada             aircraft_->Cnfada
552 #define CnfadaData         aircraft_->CnfadaData
553 #define Cnfada_aArray      aircraft_->Cnfada_aArray
554 #define Cnfada_daArray     aircraft_->Cnfada_daArray
555 #define Cnfada_CnArray     aircraft_->Cnfada_CnArray
556 #define Cnfada_nAlphaArray aircraft_->Cnfada_nAlphaArray
557 #define Cnfada_nda         aircraft_->Cnfada_nda
558 #define CnfadaI            aircraft_->CnfadaI
559   string Cnfbetadr;
560   int CnfbetadrData;
561   double Cnfbetadr_betaArray[100][100];
562   double Cnfbetadr_drArray[100];
563   double Cnfbetadr_CnArray[100][100];
564   int Cnfbetadr_nBetaArray[100];
565   int Cnfbetadr_ndr;
566   double CnfbetadrI;
567 #define Cnfbetadr             aircraft_->Cnfbetadr
568 #define CnfbetadrData         aircraft_->CnfbetadrData
569 #define Cnfbetadr_betaArray   aircraft_->Cnfbetadr_betaArray
570 #define Cnfbetadr_drArray     aircraft_->Cnfbetadr_drArray
571 #define Cnfbetadr_CnArray     aircraft_->Cnfbetadr_CnArray
572 #define Cnfbetadr_nBetaArray  aircraft_->Cnfbetadr_nBetaArray
573 #define Cnfbetadr_ndr         aircraft_->Cnfbetadr_ndr
574 #define CnfbetadrI            aircraft_->CnfbetadrI
575   
576   /* Variables (token2) ===========================================*/
577   /* gear ========== Landing gear model quantities ================*/
578   
579   map <string,int> gear_map;
580   
581 #define      gear_map              aircraft_->gear_map
582   
583   /* Variables (token2) ===========================================*/
584   /* ice =========== Ice model quantities ======================== */
585   
586   map <string,int> ice_map;
587 #define      ice_map              aircraft_->ice_map            
588
589   double iceTime;
590   double transientTime;
591   double eta_final;
592   double eta;
593 #define iceTime        aircraft_->iceTime
594 #define transientTime  aircraft_->transientTime
595 #define eta_final      aircraft_->eta_final
596 #define eta            aircraft_->eta
597   double kCDo;
598   double kCDK;
599   double kCD_a;
600   double kCD_de;
601   double CDo_clean;
602   double CDK_clean;
603   double CD_a_clean;
604   double CD_de_clean;
605 #define kCDo           aircraft_->kCDo
606 #define kCDK           aircraft_->kCDK
607 #define kCD_a          aircraft_->kCD_a
608 #define kCD_de         aircraft_->kCD_de
609 #define CDo_clean      aircraft_->CDo_clean
610 #define CDK_clean      aircraft_->CDK_clean
611 #define CD_a_clean     aircraft_->CD_a_clean
612 #define CD_de_clean    aircraft_->CD_de_clean
613   double kCLo;
614   double kCL_a;
615   double kCL_adot;
616   double kCL_q;
617   double kCL_de;
618   double CLo_clean;
619   double CL_a_clean;
620   double CL_adot_clean;
621   double CL_q_clean;
622   double CL_de_clean;
623 #define kCLo           aircraft_->kCLo
624 #define kCL_a          aircraft_->kCL_a
625 #define kCL_adot       aircraft_->kCL_adot
626 #define kCL_q          aircraft_->kCL_q
627 #define kCL_de         aircraft_->kCL_de
628 #define CLo_clean      aircraft_->CLo_clean
629 #define CL_a_clean     aircraft_->CL_a_clean
630 #define CL_adot_clean  aircraft_->CL_adot_clean
631 #define CL_q_clean     aircraft_->CL_q_clean
632 #define CL_de_clean    aircraft_->CL_de_clean
633   double kCmo;
634   double kCm_a;
635   double kCm_adot;
636   double kCm_q;
637   double kCm_de;
638   double Cmo_clean;
639   double Cm_a_clean;
640   double Cm_adot_clean;
641   double Cm_q_clean;
642   double Cm_de_clean;
643 #define kCmo           aircraft_->kCmo
644 #define kCm_a          aircraft_->kCm_a
645 #define kCm_adot       aircraft_->kCm_adot
646 #define kCm_q          aircraft_->kCm_q
647 #define kCm_de         aircraft_->kCm_de
648 #define Cmo_clean      aircraft_->Cmo_clean
649 #define Cm_a_clean     aircraft_->Cm_a_clean
650 #define Cm_adot_clean  aircraft_->Cm_adot_clean
651 #define Cm_q_clean     aircraft_->Cm_q_clean
652 #define Cm_de_clean    aircraft_->Cm_de_clean
653   double kCYo;
654   double kCY_beta;
655   double kCY_p;
656   double kCY_r;
657   double kCY_da;
658   double kCY_dr;
659   double CYo_clean;
660   double CY_beta_clean;
661   double CY_p_clean;
662   double CY_r_clean;
663   double CY_da_clean;
664   double CY_dr_clean;
665 #define kCYo           aircraft_->kCYo
666 #define kCY_beta       aircraft_->kCY_beta
667 #define kCY_p          aircraft_->kCY_p
668 #define kCY_r          aircraft_->kCY_r
669 #define kCY_da         aircraft_->kCY_da
670 #define kCY_dr         aircraft_->kCY_dr
671 #define CYo_clean      aircraft_->CYo_clean
672 #define CY_beta_clean  aircraft_->CY_beta_clean
673 #define CY_p_clean     aircraft_->CY_p_clean
674 #define CY_r_clean     aircraft_->CY_r_clean
675 #define CY_da_clean    aircraft_->CY_da_clean
676 #define CY_dr_clean    aircraft_->CY_dr_clean
677   double kClo;
678   double kCl_beta;
679   double kCl_p;
680   double kCl_r;
681   double kCl_da;
682   double kCl_dr;
683   double Clo_clean;
684   double Cl_beta_clean;
685   double Cl_p_clean;
686   double Cl_r_clean;
687   double Cl_da_clean;
688   double Cl_dr_clean;
689 #define kClo           aircraft_->kClo
690 #define kCl_beta       aircraft_->kCl_beta
691 #define kCl_p          aircraft_->kCl_p
692 #define kCl_r          aircraft_->kCl_r
693 #define kCl_da         aircraft_->kCl_da
694 #define kCl_dr         aircraft_->kCl_dr
695 #define Clo_clean      aircraft_->Clo_clean
696 #define Cl_beta_clean  aircraft_->Cl_beta_clean
697 #define Cl_p_clean     aircraft_->Cl_p_clean
698 #define Cl_r_clean     aircraft_->Cl_r_clean
699 #define Cl_da_clean    aircraft_->Cl_da_clean
700 #define Cl_dr_clean    aircraft_->Cl_dr_clean
701   double kCno;
702   double kCn_beta;
703   double kCn_p;
704   double kCn_r;
705   double kCn_da;
706   double kCn_dr;
707   double Cno_clean;
708   double Cn_beta_clean;
709   double Cn_p_clean;
710   double Cn_r_clean;
711   double Cn_da_clean;
712   double Cn_dr_clean;
713 #define kCno           aircraft_->kCno
714 #define kCn_beta       aircraft_->kCn_beta
715 #define kCn_p          aircraft_->kCn_p
716 #define kCn_r          aircraft_->kCn_r
717 #define kCn_da         aircraft_->kCn_da
718 #define kCn_dr         aircraft_->kCn_dr
719 #define Cno_clean      aircraft_->Cno_clean
720 #define Cn_beta_clean  aircraft_->Cn_beta_clean
721 #define Cn_p_clean     aircraft_->Cn_p_clean
722 #define Cn_r_clean     aircraft_->Cn_r_clean
723 #define Cn_da_clean    aircraft_->Cn_da_clean
724 #define Cn_dr_clean    aircraft_->Cn_dr_clean
725
726   /* Variables (token2) ===========================================*/
727   /* record ======== Record desired quantites to file =============*/
728   
729   map <string,int> record_map;
730 #define      record_map              aircraft_->record_map
731
732   /***** Forces *******/
733
734   double F_X_wind, F_Y_wind, F_Z_wind;
735
736 #define F_X_wind aircraft_->F_X_wind
737 #define F_Y_wind aircraft_->F_Y_wind
738 #define F_Z_wind aircraft_->F_Z_wind
739
740
741   /* Miscellaneous ================================================*/
742
743   int conversion1, conversion2, conversion3;
744   double confac1, confac2, confac3;
745
746 #define conversion1 aircraft_->conversion1
747 #define conversion2 aircraft_->conversion2
748 #define conversion3 aircraft_->conversion3
749 #define confac1 aircraft_->confac1
750 #define confac2 aircraft_->confac2
751 #define confac3 aircraft_->confac3
752
753
754   ofstream fout;
755   
756 #define fout aircraft_->fout
757   
758   
759 } AIRCRAFT;
760
761 // usually defined in the first program that includes uiuc_aircraft.h
762 extern AIRCRAFT *aircraft_;
763
764 #endif  // endif _AIRCRAFT_H