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