1 /**********************************************************************
3 FILENAME: uiuc_menu.cpp
5 ----------------------------------------------------------------------
7 DESCRIPTION: reads input file for specified aircraft and creates
8 approporiate data storage space
10 ----------------------------------------------------------------------
14 ----------------------------------------------------------------------
16 REFERENCES: based on "menu reader" format of Michael Selig
18 ----------------------------------------------------------------------
20 HISTORY: 01/29/2000 initial release
21 02/18/2000 (JS) added 1D data file capability for
22 CL(a) and CD(a) -- calls
24 02/22/2000 (JS) added ice map functions
25 02/29/2000 (JS) added 2D data file capability for
26 CL(a,de), CD(a,de), Cm(a,de), CY(a,da),
27 CY(beta,dr), Cl(a,da), Cl(beta,dr),
28 Cn(a,da), Cn(beta,dr) -- calls
30 02/02/2000 (JS) added record options for 1D and
31 2D interpolated variables
32 03/28/2000 (JS) streamlined conversion factors for
33 file readers -- since they are global
34 variables, it is not necessary to put
35 them in the function calls
36 03/29/2000 (JS) added Cmfa and Weight flags;
37 added misc map; added Dx_cg (etc) to init
39 04/01/2000 (JS) added throttle, longitudinal, lateral,
40 and rudder inputs to record map
41 04/05/2000 (JS) added Altitude to init and record
42 maps; added zero_Long_trim to
44 03/09/2001 (DPM) added support for gear.
45 06/18/2001 (RD) Added Alpha, Beta, U_body,
46 V_body, and W_body to init map. Added
47 aileron_input, rudder_input, pilot_elev_no,
48 pilot_ail_no, and pilot_rud_no to
49 controlSurface map. Added Throttle_pct_input
50 to engine map. Added CZfa to CL map.
51 07/05/2001 (RD) Changed pilot_elev_no = true to pilot_
52 elev_no_check=false. This is to allow pilot
53 to fly aircraft after input files have been
55 08/27/2001 (RD) Added xxx_init_true and xxx_init for
56 P_body, Q_body, R_body, Phi, Theta, Psi,
57 U_body, V_body, and W_body to help in
58 starting the A/C at an initial condition.
60 ----------------------------------------------------------------------
62 AUTHOR(S): Bipin Sehgal <bsehgal@uiuc.edu>
63 Jeff Scott <jscott@mail.com>
64 Robert Deters <rdeters@uiuc.edu>
65 Michael Selig <m-selig@uiuc.edu>
66 David Megginson <david@megginson.com>
68 ----------------------------------------------------------------------
72 ----------------------------------------------------------------------
76 ----------------------------------------------------------------------
80 ----------------------------------------------------------------------
82 CALLED BY: uiuc_wrapper.cpp
84 ----------------------------------------------------------------------
86 CALLS TO: aircraft.dat
87 tabulated data files (if needed)
89 ----------------------------------------------------------------------
91 COPYRIGHT: (C) 2000 by Michael Selig
93 This program is free software; you can redistribute it and/or
94 modify it under the terms of the GNU General Public License
95 as published by the Free Software Foundation.
97 This program is distributed in the hope that it will be useful,
98 but WITHOUT ANY WARRANTY; without even the implied warranty of
99 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
100 GNU General Public License for more details.
102 You should have received a copy of the GNU General Public License
103 along with this program; if not, write to the Free Software
104 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
105 USA or view http://www.gnu.org/copyleft/gpl.html.
107 **********************************************************************/
109 #include <simgear/compiler.h>
111 #if defined( __MWERKS__ )
112 // -dw- optimizer chokes (big-time) trying to optimize humongous
113 // loop/switch statements
114 #pragma optimization_level 0
118 #include STL_IOSTREAM
120 #include "uiuc_menu.h"
122 #if !defined (SG_HAVE_NATIVE_SGI_COMPILERS)
132 bool check_float(string &token)
135 istrstream stream(token.c_str());
136 return (stream >> value);
140 void uiuc_menu( string aircraft_name )
144 int token_value_recordRate;
145 int token_value_convert1, token_value_convert2, token_value_convert3;
155 /* the following default setting should eventually be moved to a default or uiuc_init routine */
157 recordRate = 1; /* record every time step, default */
158 recordStartTime = 0; /* record from beginning of simulation */
160 /* set speed at which dynamic pressure terms will be accounted for,
161 since if velocity is too small, coefficients will go to infinity */
162 dyn_on_speed = 33; /* 20 kts, default */
166 /* Read the file and get the list of commands */
167 airplane = new ParseFile(aircraft_name); /* struct that includes all lines of the input file */
168 command_list = airplane -> getCommands();
169 /* structs to include all parts included in the input file for specific keyword groups */
170 initParts = new ParseFile();
171 geometryParts = new ParseFile();
172 massParts = new ParseFile();
173 engineParts = new ParseFile();
174 aeroDragParts = new ParseFile();
175 aeroLiftParts = new ParseFile();
176 aeroPitchParts = new ParseFile();
177 aeroSideforceParts = new ParseFile();
178 aeroRollParts = new ParseFile();
179 aeroYawParts = new ParseFile();
180 gearParts = new ParseFile();
181 recordParts = new ParseFile();
183 if (command_list.begin() == command_list.end())
185 cerr << "UIUC ERROR: File " << aircraft_name <<" does not exist" << endl;
189 for (LIST command_line = command_list.begin(); command_line!=command_list.end(); ++command_line)
191 cout << *command_line << endl;
193 linetoken1 = airplane -> getToken (*command_line, 1);
194 linetoken2 = airplane -> getToken (*command_line, 2);
195 linetoken3 = airplane -> getToken (*command_line, 3);
196 linetoken4 = airplane -> getToken (*command_line, 4);
197 linetoken5 = airplane -> getToken (*command_line, 5);
198 linetoken6 = airplane -> getToken (*command_line, 6);
200 istrstream token3(linetoken3.c_str());
201 istrstream token4(linetoken4.c_str());
202 istrstream token5(linetoken5.c_str());
203 istrstream token6(linetoken6.c_str());
205 switch (Keyword_map[linetoken1])
209 switch(init_map[linetoken2])
213 if (check_float(linetoken3))
214 token3 >> token_value;
216 uiuc_warnings_errors(1, *command_line);
218 Dx_pilot = token_value;
219 initParts -> storeCommands (*command_line);
224 if (check_float(linetoken3))
225 token3 >> token_value;
227 uiuc_warnings_errors(1, *command_line);
229 Dy_pilot = token_value;
230 initParts -> storeCommands (*command_line);
235 if (check_float(linetoken3))
236 token3 >> token_value;
238 uiuc_warnings_errors(1, *command_line);
240 Dz_pilot = token_value;
241 initParts -> storeCommands (*command_line);
246 if (check_float(linetoken3))
247 token3 >> token_value;
249 uiuc_warnings_errors(1, *command_line);
252 initParts -> storeCommands (*command_line);
257 if (check_float(linetoken3))
258 token3 >> token_value;
260 uiuc_warnings_errors(1, *command_line);
263 initParts -> storeCommands (*command_line);
268 if (check_float(linetoken3))
269 token3 >> token_value;
271 uiuc_warnings_errors(1, *command_line);
274 initParts -> storeCommands (*command_line);
279 if (check_float(linetoken3))
280 token3 >> token_value;
282 uiuc_warnings_errors(1, *command_line);
284 Altitude = token_value;
285 initParts -> storeCommands (*command_line);
290 if (check_float(linetoken3))
291 token3 >> token_value;
293 uiuc_warnings_errors(1, *command_line);
295 V_north = token_value;
296 initParts -> storeCommands (*command_line);
301 initParts -> storeCommands (*command_line);
302 if (check_float(linetoken3))
303 token3 >> token_value;
305 uiuc_warnings_errors(1, *command_line);
307 V_east = token_value;
312 if (check_float(linetoken3))
313 token3 >> token_value;
315 uiuc_warnings_errors(1, *command_line);
317 V_down = token_value;
318 initParts -> storeCommands (*command_line);
323 if (check_float(linetoken3))
324 token3 >> token_value;
326 uiuc_warnings_errors(1, *command_line);
328 P_body_init_true = true;
329 P_body_init = token_value;
330 initParts -> storeCommands (*command_line);
335 if (check_float(linetoken3))
336 token3 >> token_value;
338 uiuc_warnings_errors(1, *command_line);
340 Q_body_init_true = true;
341 Q_body_init = token_value;
342 initParts -> storeCommands (*command_line);
347 if (check_float(linetoken3))
348 token3 >> token_value;
350 uiuc_warnings_errors(1, *command_line);
352 R_body_init_true = true;
353 R_body_init = token_value;
354 initParts -> storeCommands (*command_line);
359 if (check_float(linetoken3))
360 token3 >> token_value;
362 uiuc_warnings_errors(1, *command_line);
364 Phi_init_true = true;
365 Phi_init = token_value;
366 initParts -> storeCommands (*command_line);
371 if (check_float(linetoken3))
372 token3 >> token_value;
374 uiuc_warnings_errors(1, *command_line);
376 Theta_init_true = true;
377 Theta_init = token_value;
378 initParts -> storeCommands (*command_line);
383 if (check_float(linetoken3))
384 token3 >> token_value;
386 uiuc_warnings_errors(1, *command_line);
388 Psi_init_true = true;
389 Psi_init = token_value;
390 initParts -> storeCommands (*command_line);
395 if (check_float(linetoken3))
396 token3 >> token_value;
398 uiuc_warnings_errors(1, *command_line);
400 Long_trim = token_value;
401 initParts -> storeCommands (*command_line);
404 case recordRate_flag:
406 //can't use check_float since variable is integer
407 token3 >> token_value_recordRate;
408 recordRate = 120 / token_value_recordRate;
411 case recordStartTime_flag:
413 if (check_float(linetoken3))
414 token3 >> token_value;
416 uiuc_warnings_errors(1, *command_line);
418 recordStartTime = token_value;
421 case nondim_rate_V_rel_wind_flag:
423 nondim_rate_V_rel_wind = true;
426 case dyn_on_speed_flag:
428 if (check_float(linetoken3))
429 token3 >> token_value;
431 uiuc_warnings_errors(1, *command_line);
433 dyn_on_speed = token_value;
438 if (check_float(linetoken3))
439 token3 >> token_value;
441 uiuc_warnings_errors(1, *command_line);
443 Alpha_init_true = true;
444 Alpha_init = token_value * DEG_TO_RAD;
449 if (check_float(linetoken3))
450 token3 >> token_value;
452 uiuc_warnings_errors(1, *command_line);
454 Beta_init_true = true;
455 Beta_init = token_value * DEG_TO_RAD;
460 if (check_float(linetoken3))
461 token3 >> token_value;
463 uiuc_warnings_errors(1, *command_line);
465 U_body_init_true = true;
466 U_body_init = token_value;
471 if (check_float(linetoken3))
472 token3 >> token_value;
474 uiuc_warnings_errors(1, *command_line);
476 V_body_init_true = true;
477 V_body_init = token_value;
482 if (check_float(linetoken3))
483 token3 >> token_value;
485 uiuc_warnings_errors(1, *command_line);
487 W_body_init_true = true;
488 W_body_init = token_value;
493 uiuc_warnings_errors(2, *command_line);
503 switch(geometry_map[linetoken2])
507 if (check_float(linetoken3))
508 token3 >> token_value;
510 uiuc_warnings_errors(1, *command_line);
513 geometryParts -> storeCommands (*command_line);
518 if (check_float(linetoken3))
519 token3 >> token_value;
521 uiuc_warnings_errors(1, *command_line);
524 geometryParts -> storeCommands (*command_line);
529 if (check_float(linetoken3))
530 token3 >> token_value;
532 uiuc_warnings_errors(1, *command_line);
535 geometryParts -> storeCommands (*command_line);
540 if (check_float(linetoken3))
541 token3 >> token_value;
543 uiuc_warnings_errors(1, *command_line);
546 geometryParts -> storeCommands (*command_line);
551 if (check_float(linetoken3))
552 token3 >> token_value;
554 uiuc_warnings_errors(1, *command_line);
557 geometryParts -> storeCommands (*command_line);
562 if (check_float(linetoken3))
563 token3 >> token_value;
565 uiuc_warnings_errors(1, *command_line);
568 geometryParts -> storeCommands (*command_line);
573 if (check_float(linetoken3))
574 token3 >> token_value;
576 uiuc_warnings_errors(1, *command_line);
579 geometryParts -> storeCommands (*command_line);
584 uiuc_warnings_errors(2, *command_line);
589 } // end geometry map
592 case controlSurface_flag:
594 switch(controlSurface_map[linetoken2])
598 if (check_float(linetoken3))
599 token3 >> token_value;
601 uiuc_warnings_errors(1, *command_line);
605 if (check_float(linetoken4))
606 token4 >> token_value;
608 uiuc_warnings_errors(1, *command_line);
615 if (check_float(linetoken3))
616 token3 >> token_value;
618 uiuc_warnings_errors(1, *command_line);
622 if (check_float(linetoken4))
623 token4 >> token_value;
625 uiuc_warnings_errors(1, *command_line);
632 if (check_float(linetoken3))
633 token3 >> token_value;
635 uiuc_warnings_errors(1, *command_line);
639 if (check_float(linetoken4))
640 token4 >> token_value;
642 uiuc_warnings_errors(1, *command_line);
647 case set_Long_trim_flag:
649 if (check_float(linetoken3))
650 token3 >> token_value;
652 uiuc_warnings_errors(1, *command_line);
654 set_Long_trim = true;
655 elevator_tab = token_value;
658 case set_Long_trim_deg_flag:
660 if (check_float(linetoken3))
661 token3 >> token_value;
663 uiuc_warnings_errors(1, *command_line);
665 set_Long_trim = true;
666 elevator_tab = token_value * DEG_TO_RAD;
669 case zero_Long_trim_flag:
671 zero_Long_trim = true;
674 case elevator_step_flag:
676 // set step input flag
677 elevator_step = true;
679 // read in step angle in degrees and convert
680 if (check_float(linetoken3))
681 token3 >> token_value;
683 uiuc_warnings_errors(1, *command_line);
685 elevator_step_angle = token_value * DEG_TO_RAD;
687 // read in step start time
688 if (check_float(linetoken4))
689 token4 >> token_value;
691 uiuc_warnings_errors(1, *command_line);
693 elevator_step_startTime = token_value;
696 case elevator_singlet_flag:
698 // set singlet input flag
699 elevator_singlet = true;
701 // read in singlet angle in degrees and convert
702 if (check_float(linetoken3))
703 token3 >> token_value;
705 uiuc_warnings_errors(1, *command_line);
707 elevator_singlet_angle = token_value * DEG_TO_RAD;
709 // read in singlet start time
710 if (check_float(linetoken4))
711 token4 >> token_value;
713 uiuc_warnings_errors(1, *command_line);
715 elevator_singlet_startTime = token_value;
717 // read in singlet duration
718 if (check_float(linetoken5))
719 token5 >> token_value;
721 uiuc_warnings_errors(1, *command_line);
723 elevator_singlet_duration = token_value;
726 case elevator_doublet_flag:
728 // set doublet input flag
729 elevator_doublet = true;
731 // read in doublet angle in degrees and convert
732 if (check_float(linetoken3))
733 token3 >> token_value;
735 uiuc_warnings_errors(1, *command_line);
737 elevator_doublet_angle = token_value * DEG_TO_RAD;
739 // read in doublet start time
740 if (check_float(linetoken4))
741 token4 >> token_value;
743 uiuc_warnings_errors(1, *command_line);
745 elevator_doublet_startTime = token_value;
747 // read in doublet duration
748 if (check_float(linetoken5))
749 token5 >> token_value;
751 uiuc_warnings_errors(1, *command_line);
753 elevator_doublet_duration = token_value;
756 case elevator_input_flag:
758 elevator_input = true;
759 elevator_input_file = linetoken3;
760 token4 >> token_value_convert1;
761 token5 >> token_value_convert2;
762 convert_y = uiuc_convert(token_value_convert1);
763 convert_x = uiuc_convert(token_value_convert2);
764 uiuc_1DdataFileReader(elevator_input_file,
765 elevator_input_timeArray,
766 elevator_input_deArray,
767 elevator_input_ntime);
768 token6 >> token_value;
769 elevator_input_startTime = token_value;
772 case aileron_input_flag:
774 aileron_input = true;
775 aileron_input_file = linetoken3;
776 token4 >> token_value_convert1;
777 token5 >> token_value_convert2;
778 convert_y = uiuc_convert(token_value_convert1);
779 convert_x = uiuc_convert(token_value_convert2);
780 uiuc_1DdataFileReader(aileron_input_file,
781 aileron_input_timeArray,
782 aileron_input_daArray,
783 aileron_input_ntime);
784 token6 >> token_value;
785 aileron_input_startTime = token_value;
788 case rudder_input_flag:
791 rudder_input_file = linetoken3;
792 token4 >> token_value_convert1;
793 token5 >> token_value_convert2;
794 convert_y = uiuc_convert(token_value_convert1);
795 convert_x = uiuc_convert(token_value_convert2);
796 uiuc_1DdataFileReader(rudder_input_file,
797 rudder_input_timeArray,
798 rudder_input_drArray,
800 token6 >> token_value;
801 rudder_input_startTime = token_value;
804 case pilot_elev_no_flag:
806 pilot_elev_no_check = true;
809 case pilot_ail_no_flag:
811 pilot_ail_no_check = true;
814 case pilot_rud_no_flag:
816 pilot_rud_no_check = true;
821 uiuc_warnings_errors(2, *command_line);
826 } // end controlSurface map
831 switch(mass_map[linetoken2])
835 if (check_float(linetoken3))
836 token3 >> token_value;
838 uiuc_warnings_errors(1, *command_line);
840 Weight = token_value;
841 Mass = Weight * INVG;
842 massParts -> storeCommands (*command_line);
847 if (check_float(linetoken3))
848 token3 >> token_value;
850 uiuc_warnings_errors(1, *command_line);
853 massParts -> storeCommands (*command_line);
858 if (check_float(linetoken3))
859 token3 >> token_value;
861 uiuc_warnings_errors(1, *command_line);
864 massParts -> storeCommands (*command_line);
869 if (check_float(linetoken3))
870 token3 >> token_value;
872 uiuc_warnings_errors(1, *command_line);
875 massParts -> storeCommands (*command_line);
880 if (check_float(linetoken3))
881 token3 >> token_value;
883 uiuc_warnings_errors(1, *command_line);
886 massParts -> storeCommands (*command_line);
891 if (check_float(linetoken3))
892 token3 >> token_value;
894 uiuc_warnings_errors(1, *command_line);
897 massParts -> storeCommands (*command_line);
902 uiuc_warnings_errors(2, *command_line);
912 switch(engine_map[linetoken2])
914 case simpleSingle_flag:
916 if (check_float(linetoken3))
917 token3 >> token_value;
919 uiuc_warnings_errors(1, *command_line);
921 simpleSingleMaxThrust = token_value;
922 engineParts -> storeCommands (*command_line);
927 engineParts -> storeCommands (*command_line);
932 engineParts -> storeCommands (*command_line);
935 case Throttle_pct_input_flag:
937 Throttle_pct_input = true;
938 Throttle_pct_input_file = linetoken3;
939 token4 >> token_value_convert1;
940 token5 >> token_value_convert2;
941 convert_y = uiuc_convert(token_value_convert1);
942 convert_x = uiuc_convert(token_value_convert2);
943 uiuc_1DdataFileReader(Throttle_pct_input_file,
944 Throttle_pct_input_timeArray,
945 Throttle_pct_input_dTArray,
946 Throttle_pct_input_ntime);
947 token6 >> token_value;
948 Throttle_pct_input_startTime = token_value;
953 uiuc_warnings_errors(2, *command_line);
963 switch(CD_map[linetoken2])
967 if (check_float(linetoken3))
968 token3 >> token_value;
970 uiuc_warnings_errors(1, *command_line);
974 aeroDragParts -> storeCommands (*command_line);
979 if (check_float(linetoken3))
980 token3 >> token_value;
982 uiuc_warnings_errors(1, *command_line);
986 aeroDragParts -> storeCommands (*command_line);
991 if (check_float(linetoken3))
992 token3 >> token_value;
994 uiuc_warnings_errors(1, *command_line);
998 aeroDragParts -> storeCommands (*command_line);
1003 if (check_float(linetoken3))
1004 token3 >> token_value;
1006 uiuc_warnings_errors(1, *command_line);
1008 CD_adot = token_value;
1009 CD_adot_clean = CD_adot;
1010 aeroDragParts -> storeCommands (*command_line);
1015 if (check_float(linetoken3))
1016 token3 >> token_value;
1018 uiuc_warnings_errors(1, *command_line);
1022 aeroDragParts -> storeCommands (*command_line);
1027 if (check_float(linetoken3))
1028 token3 >> token_value;
1030 uiuc_warnings_errors(1, *command_line);
1032 CD_ih = token_value;
1033 aeroDragParts -> storeCommands (*command_line);
1038 if (check_float(linetoken3))
1039 token3 >> token_value;
1041 uiuc_warnings_errors(1, *command_line);
1043 CD_de = token_value;
1044 CD_de_clean = CD_de;
1045 aeroDragParts -> storeCommands (*command_line);
1051 token4 >> token_value_convert1;
1052 token5 >> token_value_convert2;
1053 convert_y = uiuc_convert(token_value_convert1);
1054 convert_x = uiuc_convert(token_value_convert2);
1055 /* call 1D File Reader with file name (CDfa) and conversion
1056 factors; function returns array of alphas (aArray) and
1057 corresponding CD values (CDArray) and max number of
1058 terms in arrays (nAlpha) */
1059 uiuc_1DdataFileReader(CDfa,
1063 aeroDragParts -> storeCommands (*command_line);
1069 token4 >> token_value_convert1;
1070 token5 >> token_value_convert2;
1071 convert_y = uiuc_convert(token_value_convert1);
1072 convert_x = uiuc_convert(token_value_convert2);
1073 /* call 1D File Reader with file name (CDfCL) and conversion
1074 factors; function returns array of CLs (CLArray) and
1075 corresponding CD values (CDArray) and max number of
1076 terms in arrays (nCL) */
1077 uiuc_1DdataFileReader(CDfCL,
1081 aeroDragParts -> storeCommands (*command_line);
1086 CDfade = linetoken3;
1087 token4 >> token_value_convert1;
1088 token5 >> token_value_convert2;
1089 token6 >> token_value_convert3;
1090 convert_z = uiuc_convert(token_value_convert1);
1091 convert_x = uiuc_convert(token_value_convert2);
1092 convert_y = uiuc_convert(token_value_convert3);
1093 /* call 2D File Reader with file name (CDfade) and
1094 conversion factors; function returns array of
1095 elevator deflections (deArray) and corresponding
1096 alpha (aArray) and delta CD (CDArray) values and
1097 max number of terms in alpha arrays (nAlphaArray)
1098 and deflection array (nde) */
1099 uiuc_2DdataFileReader(CDfade,
1105 aeroDragParts -> storeCommands (*command_line);
1111 token4 >> token_value_convert1;
1112 token5 >> token_value_convert2;
1113 convert_y = uiuc_convert(token_value_convert1);
1114 convert_x = uiuc_convert(token_value_convert2);
1115 /* call 1D File Reader with file name (CDfdf) and conversion
1116 factors; function returns array of dfs (dfArray) and
1117 corresponding CD values (CDArray) and max number of
1118 terms in arrays (ndf) */
1119 uiuc_1DdataFileReader(CDfdf,
1123 aeroDragParts -> storeCommands (*command_line);
1128 CDfadf = linetoken3;
1129 token4 >> token_value_convert1;
1130 token5 >> token_value_convert2;
1131 token6 >> token_value_convert3;
1132 convert_z = uiuc_convert(token_value_convert1);
1133 convert_x = uiuc_convert(token_value_convert2);
1134 convert_y = uiuc_convert(token_value_convert3);
1135 /* call 2D File Reader with file name (CDfadf) and
1136 conversion factors; function returns array of
1137 flap deflections (dfArray) and corresponding
1138 alpha (aArray) and delta CD (CDArray) values and
1139 max number of terms in alpha arrays (nAlphaArray)
1140 and deflection array (ndf) */
1141 uiuc_2DdataFileReader(CDfadf,
1147 aeroDragParts -> storeCommands (*command_line);
1152 if (check_float(linetoken3))
1153 token3 >> token_value;
1155 uiuc_warnings_errors(1, *command_line);
1159 aeroDragParts -> storeCommands (*command_line);
1164 if (check_float(linetoken3))
1165 token3 >> token_value;
1167 uiuc_warnings_errors(1, *command_line);
1171 aeroDragParts -> storeCommands (*command_line);
1176 if (check_float(linetoken3))
1177 token3 >> token_value;
1179 uiuc_warnings_errors(1, *command_line);
1183 aeroDragParts -> storeCommands (*command_line);
1188 if (check_float(linetoken3))
1189 token3 >> token_value;
1191 uiuc_warnings_errors(1, *command_line);
1193 CX_a2 = token_value;
1194 CX_a2_clean = CX_a2;
1195 aeroDragParts -> storeCommands (*command_line);
1200 if (check_float(linetoken3))
1201 token3 >> token_value;
1203 uiuc_warnings_errors(1, *command_line);
1205 CX_a3 = token_value;
1206 CX_a3_clean = CX_a3;
1207 aeroDragParts -> storeCommands (*command_line);
1212 if (check_float(linetoken3))
1213 token3 >> token_value;
1215 uiuc_warnings_errors(1, *command_line);
1217 CX_adot = token_value;
1218 CX_adot_clean = CX_adot;
1219 aeroDragParts -> storeCommands (*command_line);
1224 if (check_float(linetoken3))
1225 token3 >> token_value;
1227 uiuc_warnings_errors(1, *command_line);
1231 aeroDragParts -> storeCommands (*command_line);
1236 if (check_float(linetoken3))
1237 token3 >> token_value;
1239 uiuc_warnings_errors(1, *command_line);
1241 CX_de = token_value;
1242 CX_de_clean = CX_de;
1243 aeroDragParts -> storeCommands (*command_line);
1248 if (check_float(linetoken3))
1249 token3 >> token_value;
1251 uiuc_warnings_errors(1, *command_line);
1253 CX_dr = token_value;
1254 CX_dr_clean = CX_dr;
1255 aeroDragParts -> storeCommands (*command_line);
1260 if (check_float(linetoken3))
1261 token3 >> token_value;
1263 uiuc_warnings_errors(1, *command_line);
1265 CX_df = token_value;
1266 CX_df_clean = CX_df;
1267 aeroDragParts -> storeCommands (*command_line);
1272 if (check_float(linetoken3))
1273 token3 >> token_value;
1275 uiuc_warnings_errors(1, *command_line);
1277 CX_adf = token_value;
1278 CX_adf_clean = CX_adf;
1279 aeroDragParts -> storeCommands (*command_line);
1284 uiuc_warnings_errors(2, *command_line);
1294 switch(CL_map[linetoken2])
1298 if (check_float(linetoken3))
1299 token3 >> token_value;
1301 uiuc_warnings_errors(1, *command_line);
1305 aeroLiftParts -> storeCommands (*command_line);
1310 if (check_float(linetoken3))
1311 token3 >> token_value;
1313 uiuc_warnings_errors(1, *command_line);
1317 aeroLiftParts -> storeCommands (*command_line);
1322 if (check_float(linetoken3))
1323 token3 >> token_value;
1325 uiuc_warnings_errors(1, *command_line);
1327 CL_adot = token_value;
1328 CL_adot_clean = CL_adot;
1329 aeroLiftParts -> storeCommands (*command_line);
1334 if (check_float(linetoken3))
1335 token3 >> token_value;
1337 uiuc_warnings_errors(1, *command_line);
1341 aeroLiftParts -> storeCommands (*command_line);
1346 if (check_float(linetoken3))
1347 token3 >> token_value;
1349 uiuc_warnings_errors(1, *command_line);
1351 CL_ih = token_value;
1352 aeroLiftParts -> storeCommands (*command_line);
1357 if (check_float(linetoken3))
1358 token3 >> token_value;
1360 uiuc_warnings_errors(1, *command_line);
1362 CL_de = token_value;
1363 CL_de_clean = CL_de;
1364 aeroLiftParts -> storeCommands (*command_line);
1370 token4 >> token_value_convert1;
1371 token5 >> token_value_convert2;
1372 convert_y = uiuc_convert(token_value_convert1);
1373 convert_x = uiuc_convert(token_value_convert2);
1374 /* call 1D File Reader with file name (CLfa) and conversion
1375 factors; function returns array of alphas (aArray) and
1376 corresponding CL values (CLArray) and max number of
1377 terms in arrays (nAlpha) */
1378 uiuc_1DdataFileReader(CLfa,
1382 aeroLiftParts -> storeCommands (*command_line);
1387 CLfade = linetoken3;
1388 token4 >> token_value_convert1;
1389 token5 >> token_value_convert2;
1390 token6 >> token_value_convert3;
1391 convert_z = uiuc_convert(token_value_convert1);
1392 convert_x = uiuc_convert(token_value_convert2);
1393 convert_y = uiuc_convert(token_value_convert3);
1394 /* call 2D File Reader with file name (CLfade) and
1395 conversion factors; function returns array of
1396 elevator deflections (deArray) and corresponding
1397 alpha (aArray) and delta CL (CLArray) values and
1398 max number of terms in alpha arrays (nAlphaArray)
1399 and deflection array (nde) */
1400 uiuc_2DdataFileReader(CLfade,
1406 aeroLiftParts -> storeCommands (*command_line);
1412 token4 >> token_value_convert1;
1413 token5 >> token_value_convert2;
1414 convert_y = uiuc_convert(token_value_convert1);
1415 convert_x = uiuc_convert(token_value_convert2);
1416 /* call 1D File Reader with file name (CLfdf) and conversion
1417 factors; function returns array of dfs (dfArray) and
1418 corresponding CL values (CLArray) and max number of
1419 terms in arrays (ndf) */
1420 uiuc_1DdataFileReader(CLfdf,
1424 aeroLiftParts -> storeCommands (*command_line);
1426 // additional variables to streamline flap routine in aerodeflections
1428 int temp_counter = 1;
1429 while (temp_counter <= ndf)
1431 dfArray[temp_counter] = CLfdf_dfArray[temp_counter];
1432 TimeArray[temp_counter] = dfTimefdf_TimeArray[temp_counter];
1439 CLfadf = linetoken3;
1440 token4 >> token_value_convert1;
1441 token5 >> token_value_convert2;
1442 token6 >> token_value_convert3;
1443 convert_z = uiuc_convert(token_value_convert1);
1444 convert_x = uiuc_convert(token_value_convert2);
1445 convert_y = uiuc_convert(token_value_convert3);
1446 /* call 2D File Reader with file name (CLfadf) and
1447 conversion factors; function returns array of
1448 flap deflections (dfArray) and corresponding
1449 alpha (aArray) and delta CL (CLArray) values and
1450 max number of terms in alpha arrays (nAlphaArray)
1451 and deflection array (ndf) */
1452 uiuc_2DdataFileReader(CLfadf,
1458 aeroLiftParts -> storeCommands (*command_line);
1463 if (check_float(linetoken3))
1464 token3 >> token_value;
1466 uiuc_warnings_errors(1, *command_line);
1470 aeroLiftParts -> storeCommands (*command_line);
1475 if (check_float(linetoken3))
1476 token3 >> token_value;
1478 uiuc_warnings_errors(1, *command_line);
1482 aeroLiftParts -> storeCommands (*command_line);
1487 if (check_float(linetoken3))
1488 token3 >> token_value;
1490 uiuc_warnings_errors(1, *command_line);
1492 CZ_a2 = token_value;
1493 CZ_a2_clean = CZ_a2;
1494 aeroLiftParts -> storeCommands (*command_line);
1499 if (check_float(linetoken3))
1500 token3 >> token_value;
1502 uiuc_warnings_errors(1, *command_line);
1504 CZ_a3 = token_value;
1505 CZ_a3_clean = CZ_a3;
1506 aeroLiftParts -> storeCommands (*command_line);
1511 if (check_float(linetoken3))
1512 token3 >> token_value;
1514 uiuc_warnings_errors(1, *command_line);
1516 CZ_adot = token_value;
1517 CZ_adot_clean = CZ_adot;
1518 aeroLiftParts -> storeCommands (*command_line);
1523 if (check_float(linetoken3))
1524 token3 >> token_value;
1526 uiuc_warnings_errors(1, *command_line);
1530 aeroLiftParts -> storeCommands (*command_line);
1535 if (check_float(linetoken3))
1536 token3 >> token_value;
1538 uiuc_warnings_errors(1, *command_line);
1540 CZ_de = token_value;
1541 CZ_de_clean = CZ_de;
1542 aeroLiftParts -> storeCommands (*command_line);
1547 if (check_float(linetoken3))
1548 token3 >> token_value;
1550 uiuc_warnings_errors(1, *command_line);
1552 CZ_deb2 = token_value;
1553 CZ_deb2_clean = CZ_deb2;
1554 aeroLiftParts -> storeCommands (*command_line);
1559 if (check_float(linetoken3))
1560 token3 >> token_value;
1562 uiuc_warnings_errors(1, *command_line);
1564 CZ_df = token_value;
1565 CZ_df_clean = CZ_df;
1566 aeroLiftParts -> storeCommands (*command_line);
1571 if (check_float(linetoken3))
1572 token3 >> token_value;
1574 uiuc_warnings_errors(1, *command_line);
1576 CZ_adf = token_value;
1577 CZ_adf_clean = CZ_adf;
1578 aeroLiftParts -> storeCommands (*command_line);
1584 token4 >> token_value_convert1;
1585 token5 >> token_value_convert2;
1586 convert_y = uiuc_convert(token_value_convert1);
1587 convert_x = uiuc_convert(token_value_convert2);
1588 /* call 1D File Reader with file name (CZfa) and conversion
1589 factors; function returns array of alphas (aArray) and
1590 corresponding CZ values (CZArray) and max number of
1591 terms in arrays (nAlpha) */
1592 uiuc_1DdataFileReader(CZfa,
1596 aeroLiftParts -> storeCommands (*command_line);
1601 uiuc_warnings_errors(2, *command_line);
1611 switch(Cm_map[linetoken2])
1615 if (check_float(linetoken3))
1616 token3 >> token_value;
1618 uiuc_warnings_errors(1, *command_line);
1622 aeroPitchParts -> storeCommands (*command_line);
1627 if (check_float(linetoken3))
1628 token3 >> token_value;
1630 uiuc_warnings_errors(1, *command_line);
1634 aeroPitchParts -> storeCommands (*command_line);
1639 if (check_float(linetoken3))
1640 token3 >> token_value;
1642 uiuc_warnings_errors(1, *command_line);
1644 Cm_a2 = token_value;
1645 Cm_a2_clean = Cm_a2;
1646 aeroPitchParts -> storeCommands (*command_line);
1651 if (check_float(linetoken3))
1652 token3 >> token_value;
1654 uiuc_warnings_errors(1, *command_line);
1656 Cm_adot = token_value;
1657 Cm_adot_clean = Cm_adot;
1658 aeroPitchParts -> storeCommands (*command_line);
1663 if (check_float(linetoken3))
1664 token3 >> token_value;
1666 uiuc_warnings_errors(1, *command_line);
1670 aeroPitchParts -> storeCommands (*command_line);
1675 if (check_float(linetoken3))
1676 token3 >> token_value;
1678 uiuc_warnings_errors(1, *command_line);
1680 Cm_ih = token_value;
1681 aeroPitchParts -> storeCommands (*command_line);
1686 if (check_float(linetoken3))
1687 token3 >> token_value;
1689 uiuc_warnings_errors(1, *command_line);
1691 Cm_de = token_value;
1692 Cm_de_clean = Cm_de;
1693 aeroPitchParts -> storeCommands (*command_line);
1698 if (check_float(linetoken3))
1699 token3 >> token_value;
1701 uiuc_warnings_errors(1, *command_line);
1703 Cm_b2 = token_value;
1704 Cm_b2_clean = Cm_b2;
1705 aeroPitchParts -> storeCommands (*command_line);
1710 if (check_float(linetoken3))
1711 token3 >> token_value;
1713 uiuc_warnings_errors(1, *command_line);
1717 aeroPitchParts -> storeCommands (*command_line);
1722 if (check_float(linetoken3))
1723 token3 >> token_value;
1725 uiuc_warnings_errors(1, *command_line);
1727 Cm_df = token_value;
1728 Cm_df_clean = Cm_df;
1729 aeroPitchParts -> storeCommands (*command_line);
1735 token4 >> token_value_convert1;
1736 token5 >> token_value_convert2;
1737 convert_y = uiuc_convert(token_value_convert1);
1738 convert_x = uiuc_convert(token_value_convert2);
1739 /* call 1D File Reader with file name (Cmfa) and conversion
1740 factors; function returns array of alphas (aArray) and
1741 corresponding Cm values (CmArray) and max number of
1742 terms in arrays (nAlpha) */
1743 uiuc_1DdataFileReader(Cmfa,
1747 aeroPitchParts -> storeCommands (*command_line);
1752 Cmfade = linetoken3;
1753 token4 >> token_value_convert1;
1754 token5 >> token_value_convert2;
1755 token6 >> token_value_convert3;
1756 convert_z = uiuc_convert(token_value_convert1);
1757 convert_x = uiuc_convert(token_value_convert2);
1758 convert_y = uiuc_convert(token_value_convert3);
1759 /* call 2D File Reader with file name (Cmfade) and
1760 conversion factors; function returns array of
1761 elevator deflections (deArray) and corresponding
1762 alpha (aArray) and delta Cm (CmArray) values and
1763 max number of terms in alpha arrays (nAlphaArray)
1764 and deflection array (nde) */
1765 uiuc_2DdataFileReader(Cmfade,
1771 aeroPitchParts -> storeCommands (*command_line);
1777 token4 >> token_value_convert1;
1778 token5 >> token_value_convert2;
1779 convert_y = uiuc_convert(token_value_convert1);
1780 convert_x = uiuc_convert(token_value_convert2);
1781 /* call 1D File Reader with file name (Cmfdf) and conversion
1782 factors; function returns array of dfs (dfArray) and
1783 corresponding Cm values (CmArray) and max number of
1784 terms in arrays (ndf) */
1785 uiuc_1DdataFileReader(Cmfdf,
1789 aeroPitchParts -> storeCommands (*command_line);
1794 Cmfadf = linetoken3;
1795 token4 >> token_value_convert1;
1796 token5 >> token_value_convert2;
1797 token6 >> token_value_convert3;
1798 convert_z = uiuc_convert(token_value_convert1);
1799 convert_x = uiuc_convert(token_value_convert2);
1800 convert_y = uiuc_convert(token_value_convert3);
1801 /* call 2D File Reader with file name (Cmfadf) and
1802 conversion factors; function returns array of
1803 flap deflections (dfArray) and corresponding
1804 alpha (aArray) and delta Cm (CmArray) values and
1805 max number of terms in alpha arrays (nAlphaArray)
1806 and deflection array (ndf) */
1807 uiuc_2DdataFileReader(Cmfadf,
1813 aeroPitchParts -> storeCommands (*command_line);
1818 uiuc_warnings_errors(2, *command_line);
1828 switch(CY_map[linetoken2])
1832 if (check_float(linetoken3))
1833 token3 >> token_value;
1835 uiuc_warnings_errors(1, *command_line);
1839 aeroSideforceParts -> storeCommands (*command_line);
1844 if (check_float(linetoken3))
1845 token3 >> token_value;
1847 uiuc_warnings_errors(1, *command_line);
1849 CY_beta = token_value;
1850 CY_beta_clean = CY_beta;
1851 aeroSideforceParts -> storeCommands (*command_line);
1856 if (check_float(linetoken3))
1857 token3 >> token_value;
1859 uiuc_warnings_errors(1, *command_line);
1863 aeroSideforceParts -> storeCommands (*command_line);
1868 if (check_float(linetoken3))
1869 token3 >> token_value;
1871 uiuc_warnings_errors(1, *command_line);
1875 aeroSideforceParts -> storeCommands (*command_line);
1880 if (check_float(linetoken3))
1881 token3 >> token_value;
1883 uiuc_warnings_errors(1, *command_line);
1885 CY_da = token_value;
1886 CY_da_clean = CY_da;
1887 aeroSideforceParts -> storeCommands (*command_line);
1892 if (check_float(linetoken3))
1893 token3 >> token_value;
1895 uiuc_warnings_errors(2, *command_line);
1897 CY_dr = token_value;
1898 CY_dr_clean = CY_dr;
1899 aeroSideforceParts -> storeCommands (*command_line);
1904 if (check_float(linetoken3))
1905 token3 >> token_value;
1907 uiuc_warnings_errors(2, *command_line);
1909 CY_dra = token_value;
1910 CY_dra_clean = CY_dra;
1911 aeroSideforceParts -> storeCommands (*command_line);
1916 if (check_float(linetoken3))
1917 token3 >> token_value;
1919 uiuc_warnings_errors(2, *command_line);
1921 CY_bdot = token_value;
1922 CY_bdot_clean = CY_bdot;
1923 aeroSideforceParts -> storeCommands (*command_line);
1928 CYfada = linetoken3;
1929 token4 >> token_value_convert1;
1930 token5 >> token_value_convert2;
1931 token6 >> token_value_convert3;
1932 convert_z = uiuc_convert(token_value_convert1);
1933 convert_x = uiuc_convert(token_value_convert2);
1934 convert_y = uiuc_convert(token_value_convert3);
1935 /* call 2D File Reader with file name (CYfada) and
1936 conversion factors; function returns array of
1937 aileron deflections (daArray) and corresponding
1938 alpha (aArray) and delta CY (CYArray) values and
1939 max number of terms in alpha arrays (nAlphaArray)
1940 and deflection array (nda) */
1941 uiuc_2DdataFileReader(CYfada,
1947 aeroSideforceParts -> storeCommands (*command_line);
1950 case CYfbetadr_flag:
1952 CYfbetadr = linetoken3;
1953 token4 >> token_value_convert1;
1954 token5 >> token_value_convert2;
1955 token6 >> token_value_convert3;
1956 convert_z = uiuc_convert(token_value_convert1);
1957 convert_x = uiuc_convert(token_value_convert2);
1958 convert_y = uiuc_convert(token_value_convert3);
1959 /* call 2D File Reader with file name (CYfbetadr) and
1960 conversion factors; function returns array of
1961 rudder deflections (drArray) and corresponding
1962 beta (betaArray) and delta CY (CYArray) values and
1963 max number of terms in beta arrays (nBetaArray)
1964 and deflection array (ndr) */
1965 uiuc_2DdataFileReader(CYfbetadr,
1966 CYfbetadr_betaArray,
1969 CYfbetadr_nBetaArray,
1971 aeroSideforceParts -> storeCommands (*command_line);
1976 uiuc_warnings_errors(2, *command_line);
1986 switch(Cl_map[linetoken2])
1990 if (check_float(linetoken3))
1991 token3 >> token_value;
1993 uiuc_warnings_errors(1, *command_line);
1997 aeroRollParts -> storeCommands (*command_line);
2002 if (check_float(linetoken3))
2003 token3 >> token_value;
2005 uiuc_warnings_errors(1, *command_line);
2007 Cl_beta = token_value;
2008 Cl_beta_clean = Cl_beta;
2009 aeroRollParts -> storeCommands (*command_line);
2014 if (check_float(linetoken3))
2015 token3 >> token_value;
2017 uiuc_warnings_errors(1, *command_line);
2021 aeroRollParts -> storeCommands (*command_line);
2026 if (check_float(linetoken3))
2027 token3 >> token_value;
2029 uiuc_warnings_errors(1, *command_line);
2033 aeroRollParts -> storeCommands (*command_line);
2038 if (check_float(linetoken3))
2039 token3 >> token_value;
2041 uiuc_warnings_errors(1, *command_line);
2043 Cl_da = token_value;
2044 Cl_da_clean = Cl_da;
2045 aeroRollParts -> storeCommands (*command_line);
2050 if (check_float(linetoken3))
2051 token3 >> token_value;
2053 uiuc_warnings_errors(1, *command_line);
2055 Cl_dr = token_value;
2056 Cl_dr_clean = Cl_dr;
2057 aeroRollParts -> storeCommands (*command_line);
2062 if (check_float(linetoken3))
2063 token3 >> token_value;
2065 uiuc_warnings_errors(1, *command_line);
2067 Cl_daa = token_value;
2068 Cl_daa_clean = Cl_daa;
2069 aeroRollParts -> storeCommands (*command_line);
2074 Clfada = linetoken3;
2075 token4 >> token_value_convert1;
2076 token5 >> token_value_convert2;
2077 token6 >> token_value_convert3;
2078 convert_z = uiuc_convert(token_value_convert1);
2079 convert_x = uiuc_convert(token_value_convert2);
2080 convert_y = uiuc_convert(token_value_convert3);
2081 /* call 2D File Reader with file name (Clfada) and
2082 conversion factors; function returns array of
2083 aileron deflections (daArray) and corresponding
2084 alpha (aArray) and delta Cl (ClArray) values and
2085 max number of terms in alpha arrays (nAlphaArray)
2086 and deflection array (nda) */
2087 uiuc_2DdataFileReader(Clfada,
2093 aeroRollParts -> storeCommands (*command_line);
2096 case Clfbetadr_flag:
2098 Clfbetadr = linetoken3;
2099 token4 >> token_value_convert1;
2100 token5 >> token_value_convert2;
2101 token6 >> token_value_convert3;
2102 convert_z = uiuc_convert(token_value_convert1);
2103 convert_x = uiuc_convert(token_value_convert2);
2104 convert_y = uiuc_convert(token_value_convert3);
2105 /* call 2D File Reader with file name (Clfbetadr) and
2106 conversion factors; function returns array of
2107 rudder deflections (drArray) and corresponding
2108 beta (betaArray) and delta Cl (ClArray) values and
2109 max number of terms in beta arrays (nBetaArray)
2110 and deflection array (ndr) */
2111 uiuc_2DdataFileReader(Clfbetadr,
2112 Clfbetadr_betaArray,
2115 Clfbetadr_nBetaArray,
2117 aeroRollParts -> storeCommands (*command_line);
2122 uiuc_warnings_errors(2, *command_line);
2132 switch(Cn_map[linetoken2])
2136 if (check_float(linetoken3))
2137 token3 >> token_value;
2139 uiuc_warnings_errors(1, *command_line);
2143 aeroYawParts -> storeCommands (*command_line);
2148 if (check_float(linetoken3))
2149 token3 >> token_value;
2151 uiuc_warnings_errors(1, *command_line);
2153 Cn_beta = token_value;
2154 Cn_beta_clean = Cn_beta;
2155 aeroYawParts -> storeCommands (*command_line);
2160 if (check_float(linetoken3))
2161 token3 >> token_value;
2163 uiuc_warnings_errors(1, *command_line);
2167 aeroYawParts -> storeCommands (*command_line);
2172 if (check_float(linetoken3))
2173 token3 >> token_value;
2175 uiuc_warnings_errors(1, *command_line);
2179 aeroYawParts -> storeCommands (*command_line);
2184 if (check_float(linetoken3))
2185 token3 >> token_value;
2187 uiuc_warnings_errors(1, *command_line);
2189 Cn_da = token_value;
2190 Cn_da_clean = Cn_da;
2191 aeroYawParts -> storeCommands (*command_line);
2196 if (check_float(linetoken3))
2197 token3 >> token_value;
2199 uiuc_warnings_errors(1, *command_line);
2201 Cn_dr = token_value;
2202 Cn_dr_clean = Cn_dr;
2203 aeroYawParts -> storeCommands (*command_line);
2208 if (check_float(linetoken3))
2209 token3 >> token_value;
2211 uiuc_warnings_errors(1, *command_line);
2215 aeroYawParts -> storeCommands (*command_line);
2220 if (check_float(linetoken3))
2221 token3 >> token_value;
2223 uiuc_warnings_errors(1, *command_line);
2225 Cn_b3 = token_value;
2226 Cn_b3_clean = Cn_b3;
2227 aeroYawParts -> storeCommands (*command_line);
2232 Cnfada = linetoken3;
2233 token4 >> token_value_convert1;
2234 token5 >> token_value_convert2;
2235 token6 >> token_value_convert3;
2236 convert_z = uiuc_convert(token_value_convert1);
2237 convert_x = uiuc_convert(token_value_convert2);
2238 convert_y = uiuc_convert(token_value_convert3);
2239 /* call 2D File Reader with file name (Cnfada) and
2240 conversion factors; function returns array of
2241 aileron deflections (daArray) and corresponding
2242 alpha (aArray) and delta Cn (CnArray) values and
2243 max number of terms in alpha arrays (nAlphaArray)
2244 and deflection array (nda) */
2245 uiuc_2DdataFileReader(Cnfada,
2251 aeroYawParts -> storeCommands (*command_line);
2254 case Cnfbetadr_flag:
2256 Cnfbetadr = linetoken3;
2257 token4 >> token_value_convert1;
2258 token5 >> token_value_convert2;
2259 token6 >> token_value_convert3;
2260 convert_z = uiuc_convert(token_value_convert1);
2261 convert_x = uiuc_convert(token_value_convert2);
2262 convert_y = uiuc_convert(token_value_convert3);
2263 /* call 2D File Reader with file name (Cnfbetadr) and
2264 conversion factors; function returns array of
2265 rudder deflections (drArray) and corresponding
2266 beta (betaArray) and delta Cn (CnArray) values and
2267 max number of terms in beta arrays (nBetaArray)
2268 and deflection array (ndr) */
2269 uiuc_2DdataFileReader(Cnfbetadr,
2270 Cnfbetadr_betaArray,
2273 Cnfbetadr_nBetaArray,
2275 aeroYawParts -> storeCommands (*command_line);
2280 uiuc_warnings_errors(2, *command_line);
2292 if (index < 0 || index >= 16)
2293 uiuc_warnings_errors(1, *command_line);
2294 switch(gear_map[linetoken2])
2298 if (check_float(linetoken3))
2299 token4 >> token_value;
2301 uiuc_warnings_errors(1, *command_line);
2302 D_gear_v[index][0] = token_value;
2303 gear_model[index] = true;
2308 if (check_float(linetoken3))
2309 token4 >> token_value;
2311 uiuc_warnings_errors(1, *command_line);
2312 D_gear_v[index][1] = token_value;
2313 gear_model[index] = true;
2318 if (check_float(linetoken3))
2319 token4 >> token_value;
2321 uiuc_warnings_errors(1, *command_line);
2322 D_gear_v[index][2] = token_value;
2323 gear_model[index] = true;
2328 if (check_float(linetoken3))
2329 token4 >> token_value;
2331 uiuc_warnings_errors(1, *command_line);
2332 cgear[index] = token_value;
2333 gear_model[index] = true;
2338 if (check_float(linetoken3))
2339 token4 >> token_value;
2341 uiuc_warnings_errors(1, *command_line);
2342 kgear[index] = token_value;
2343 gear_model[index] = true;
2348 if (check_float(linetoken3))
2349 token4 >> token_value;
2351 uiuc_warnings_errors(1, *command_line);
2352 muGear[index] = token_value;
2353 gear_model[index] = true;
2356 case strutLength_flag:
2358 if (check_float(linetoken3))
2359 token4 >> token_value;
2361 uiuc_warnings_errors(1, *command_line);
2362 strutLength[index] = token_value;
2363 gear_model[index] = true;
2368 uiuc_warnings_errors(2, *command_line);
2378 switch(ice_map[linetoken2])
2382 if (check_float(linetoken3))
2383 token3 >> token_value;
2386 uiuc_warnings_errors(1, *command_line);
2389 iceTime = token_value;
2392 case transientTime_flag:
2394 if (check_float(linetoken3))
2395 token3 >> token_value;
2397 uiuc_warnings_errors(1, *command_line);
2399 transientTime = token_value;
2402 case eta_ice_final_flag:
2404 if (check_float(linetoken3))
2405 token3 >> token_value;
2407 uiuc_warnings_errors(1, *command_line);
2409 eta_ice_final = token_value;
2412 case beta_probe_wing_flag:
2414 if (check_float(linetoken3))
2415 token3 >> token_value;
2417 uiuc_warnings_errors(1, *command_line);
2420 x_probe_wing = token_value;
2423 case beta_probe_tail_flag:
2425 if (check_float(linetoken3))
2426 token3 >> token_value;
2428 uiuc_warnings_errors(1, *command_line);
2431 x_probe_tail = token_value;
2436 if (check_float(linetoken3))
2437 token3 >> token_value;
2439 uiuc_warnings_errors(1, *command_line);
2446 if (check_float(linetoken3))
2447 token3 >> token_value;
2449 uiuc_warnings_errors(1, *command_line);
2456 if (check_float(linetoken3))
2457 token3 >> token_value;
2459 uiuc_warnings_errors(1, *command_line);
2461 kCD_a = token_value;
2466 if (check_float(linetoken3))
2467 token3 >> token_value;
2469 uiuc_warnings_errors(1, *command_line);
2471 kCD_adot = token_value;
2476 if (check_float(linetoken3))
2477 token3 >> token_value;
2479 uiuc_warnings_errors(1, *command_line);
2481 kCD_q = token_value;
2486 if (check_float(linetoken3))
2487 token3 >> token_value;
2489 uiuc_warnings_errors(1, *command_line);
2491 kCD_de = token_value;
2496 if (check_float(linetoken3))
2497 token3 >> token_value;
2499 uiuc_warnings_errors(1, *command_line);
2506 if (check_float(linetoken3))
2507 token3 >> token_value;
2509 uiuc_warnings_errors(1, *command_line);
2516 if (check_float(linetoken3))
2517 token3 >> token_value;
2519 uiuc_warnings_errors(1, *command_line);
2521 kCX_a = token_value;
2526 if (check_float(linetoken3))
2527 token3 >> token_value;
2529 uiuc_warnings_errors(1, *command_line);
2531 kCX_a2 = token_value;
2536 if (check_float(linetoken3))
2537 token3 >> token_value;
2539 uiuc_warnings_errors(1, *command_line);
2541 kCX_a3 = token_value;
2546 if (check_float(linetoken3))
2547 token3 >> token_value;
2549 uiuc_warnings_errors(1, *command_line);
2551 kCX_adot = token_value;
2556 if (check_float(linetoken3))
2557 token3 >> token_value;
2559 uiuc_warnings_errors(1, *command_line);
2561 kCX_q = token_value;
2566 if (check_float(linetoken3))
2567 token3 >> token_value;
2569 uiuc_warnings_errors(1, *command_line);
2571 kCX_de = token_value;
2576 if (check_float(linetoken3))
2577 token3 >> token_value;
2579 uiuc_warnings_errors(1, *command_line);
2581 kCX_dr = token_value;
2586 if (check_float(linetoken3))
2587 token3 >> token_value;
2589 uiuc_warnings_errors(1, *command_line);
2591 kCX_df = token_value;
2596 if (check_float(linetoken3))
2597 token3 >> token_value;
2599 uiuc_warnings_errors(1, *command_line);
2601 kCX_adf = token_value;
2606 if (check_float(linetoken3))
2607 token3 >> token_value;
2609 uiuc_warnings_errors(1, *command_line);
2616 if (check_float(linetoken3))
2617 token3 >> token_value;
2619 uiuc_warnings_errors(1, *command_line);
2621 kCL_a = token_value;
2626 if (check_float(linetoken3))
2627 token3 >> token_value;
2629 uiuc_warnings_errors(1, *command_line);
2631 kCL_adot = token_value;
2636 if (check_float(linetoken3))
2637 token3 >> token_value;
2639 uiuc_warnings_errors(1, *command_line);
2641 kCL_q = token_value;
2646 if (check_float(linetoken3))
2647 token3 >> token_value;
2649 uiuc_warnings_errors(1, *command_line);
2651 kCL_de = token_value;
2656 if (check_float(linetoken3))
2657 token3 >> token_value;
2659 uiuc_warnings_errors(1, *command_line);
2666 if (check_float(linetoken3))
2667 token3 >> token_value;
2669 uiuc_warnings_errors(1, *command_line);
2671 kCZ_a = token_value;
2676 if (check_float(linetoken3))
2677 token3 >> token_value;
2679 uiuc_warnings_errors(1, *command_line);
2681 kCZ_a2 = token_value;
2686 if (check_float(linetoken3))
2687 token3 >> token_value;
2689 uiuc_warnings_errors(1, *command_line);
2691 kCZ_a3 = token_value;
2696 if (check_float(linetoken3))
2697 token3 >> token_value;
2699 uiuc_warnings_errors(1, *command_line);
2701 kCZ_adot = token_value;
2706 if (check_float(linetoken3))
2707 token3 >> token_value;
2709 uiuc_warnings_errors(1, *command_line);
2711 kCZ_q = token_value;
2716 if (check_float(linetoken3))
2717 token3 >> token_value;
2719 uiuc_warnings_errors(1, *command_line);
2721 kCZ_de = token_value;
2726 if (check_float(linetoken3))
2727 token3 >> token_value;
2729 uiuc_warnings_errors(1, *command_line);
2731 kCZ_deb2 = token_value;
2736 if (check_float(linetoken3))
2737 token3 >> token_value;
2739 uiuc_warnings_errors(1, *command_line);
2741 kCZ_df = token_value;
2746 if (check_float(linetoken3))
2747 token3 >> token_value;
2749 uiuc_warnings_errors(1, *command_line);
2751 kCZ_adf = token_value;
2756 if (check_float(linetoken3))
2757 token3 >> token_value;
2759 uiuc_warnings_errors(1, *command_line);
2766 if (check_float(linetoken3))
2767 token3 >> token_value;
2769 uiuc_warnings_errors(1, *command_line);
2771 kCm_a = token_value;
2776 if (check_float(linetoken3))
2777 token3 >> token_value;
2779 uiuc_warnings_errors(1, *command_line);
2781 kCm_a2 = token_value;
2786 if (check_float(linetoken3))
2787 token3 >> token_value;
2789 uiuc_warnings_errors(1, *command_line);
2791 kCm_adot = token_value;
2796 if (check_float(linetoken3))
2797 token3 >> token_value;
2799 uiuc_warnings_errors(1, *command_line);
2801 kCm_q = token_value;
2806 if (check_float(linetoken3))
2807 token3 >> token_value;
2809 uiuc_warnings_errors(1, *command_line);
2811 kCm_de = token_value;
2816 if (check_float(linetoken3))
2817 token3 >> token_value;
2819 uiuc_warnings_errors(1, *command_line);
2821 kCm_b2 = token_value;
2826 if (check_float(linetoken3))
2827 token3 >> token_value;
2829 uiuc_warnings_errors(1, *command_line);
2831 kCm_r = token_value;
2836 if (check_float(linetoken3))
2837 token3 >> token_value;
2839 uiuc_warnings_errors(1, *command_line);
2841 kCm_df = token_value;
2846 if (check_float(linetoken3))
2847 token3 >> token_value;
2849 uiuc_warnings_errors(1, *command_line);
2856 if (check_float(linetoken3))
2857 token3 >> token_value;
2859 uiuc_warnings_errors(1, *command_line);
2861 kCY_beta = token_value;
2866 if (check_float(linetoken3))
2867 token3 >> token_value;
2869 uiuc_warnings_errors(1, *command_line);
2871 kCY_p = token_value;
2876 if (check_float(linetoken3))
2877 token3 >> token_value;
2879 uiuc_warnings_errors(1, *command_line);
2881 kCY_r = token_value;
2886 if (check_float(linetoken3))
2887 token3 >> token_value;
2889 uiuc_warnings_errors(1, *command_line);
2891 kCY_da = token_value;
2896 if (check_float(linetoken3))
2897 token3 >> token_value;
2899 uiuc_warnings_errors(1, *command_line);
2901 kCY_dr = token_value;
2906 if (check_float(linetoken3))
2907 token3 >> token_value;
2909 uiuc_warnings_errors(1, *command_line);
2911 kCY_dra = token_value;
2916 if (check_float(linetoken3))
2917 token3 >> token_value;
2919 uiuc_warnings_errors(1, *command_line);
2921 kCY_bdot = token_value;
2926 if (check_float(linetoken3))
2927 token3 >> token_value;
2929 uiuc_warnings_errors(1, *command_line);
2936 if (check_float(linetoken3))
2937 token3 >> token_value;
2939 uiuc_warnings_errors(1, *command_line);
2941 kCl_beta = token_value;
2946 if (check_float(linetoken3))
2947 token3 >> token_value;
2949 uiuc_warnings_errors(1, *command_line);
2951 kCl_p = token_value;
2956 if (check_float(linetoken3))
2957 token3 >> token_value;
2959 uiuc_warnings_errors(1, *command_line);
2961 kCl_r = token_value;
2966 if (check_float(linetoken3))
2967 token3 >> token_value;
2969 uiuc_warnings_errors(1, *command_line);
2971 kCl_da = token_value;
2976 if (check_float(linetoken3))
2977 token3 >> token_value;
2979 uiuc_warnings_errors(1, *command_line);
2981 kCl_dr = token_value;
2986 if (check_float(linetoken3))
2987 token3 >> token_value;
2989 uiuc_warnings_errors(1, *command_line);
2991 kCl_daa = token_value;
2996 if (check_float(linetoken3))
2997 token3 >> token_value;
2999 uiuc_warnings_errors(1, *command_line);
3006 if (check_float(linetoken3))
3007 token3 >> token_value;
3009 uiuc_warnings_errors(1, *command_line);
3011 kCn_beta = token_value;
3016 if (check_float(linetoken3))
3017 token3 >> token_value;
3019 uiuc_warnings_errors(1, *command_line);
3021 kCn_p = token_value;
3026 if (check_float(linetoken3))
3027 token3 >> token_value;
3029 uiuc_warnings_errors(1, *command_line);
3031 kCn_r = token_value;
3036 if (check_float(linetoken3))
3037 token3 >> token_value;
3039 uiuc_warnings_errors(1, *command_line);
3041 kCn_da = token_value;
3046 if (check_float(linetoken3))
3047 token3 >> token_value;
3049 uiuc_warnings_errors(1, *command_line);
3051 kCn_dr = token_value;
3056 if (check_float(linetoken3))
3057 token3 >> token_value;
3059 uiuc_warnings_errors(1, *command_line);
3061 kCn_q = token_value;
3066 if (check_float(linetoken3))
3067 token3 >> token_value;
3069 uiuc_warnings_errors(1, *command_line);
3071 kCn_b3 = token_value;
3076 uiuc_warnings_errors(2, *command_line);
3086 switch(fog_map[linetoken2])
3088 case fog_segments_flag:
3090 if (check_float(linetoken3))
3091 token3 >> token_value_convert1;
3093 uiuc_warnings_errors(1, *command_line);
3095 if (token_value_convert1 < 1 || token_value_convert1 > 100)
3096 uiuc_warnings_errors(1, *command_line);
3099 fog_point_index = 0;
3102 fog_segments = token_value_convert1;
3103 fog_time = new double[fog_segments+1];
3105 fog_value = new int[fog_segments+1];
3110 case fog_point_flag:
3112 if (check_float(linetoken3))
3113 token3 >> token_value;
3115 uiuc_warnings_errors(1, *command_line);
3117 if (token_value < 0.1)
3118 uiuc_warnings_errors(1, *command_line);
3120 if (check_float(linetoken4))
3121 token4 >> token_value_convert1;
3123 uiuc_warnings_errors(1, *command_line);
3125 if (token_value_convert1 < -1000 || token_value_convert1 > 1000)
3126 uiuc_warnings_errors(1, *command_line);
3128 if (fog_point_index == fog_segments || fog_point_index == -1)
3129 uiuc_warnings_errors(1, *command_line);
3132 fog_time[fog_point_index] = token_value;
3133 fog_value[fog_point_index] = token_value_convert1;
3139 uiuc_warnings_errors(2, *command_line);
3153 static int fout_flag=0;
3157 fout.open("uiuc_record.dat");
3159 switch(record_map[linetoken2])
3161 /************************* Time ************************/
3162 case Simtime_record:
3164 recordParts -> storeCommands (*command_line);
3169 recordParts -> storeCommands (*command_line);
3173 /************************* Mass ************************/
3176 recordParts -> storeCommands (*command_line);
3181 recordParts -> storeCommands (*command_line);
3186 recordParts -> storeCommands (*command_line);
3191 recordParts -> storeCommands (*command_line);
3196 recordParts -> storeCommands (*command_line);
3201 recordParts -> storeCommands (*command_line);
3205 /*********************** Geometry **********************/
3206 case Dx_pilot_record:
3208 recordParts -> storeCommands (*command_line);
3211 case Dy_pilot_record:
3213 recordParts -> storeCommands (*command_line);
3216 case Dz_pilot_record:
3218 recordParts -> storeCommands (*command_line);
3223 recordParts -> storeCommands (*command_line);
3228 recordParts -> storeCommands (*command_line);
3233 recordParts -> storeCommands (*command_line);
3237 /********************** Positions **********************/
3238 case Lat_geocentric_record:
3240 recordParts -> storeCommands (*command_line);
3243 case Lon_geocentric_record:
3245 recordParts -> storeCommands (*command_line);
3248 case Radius_to_vehicle_record:
3250 recordParts -> storeCommands (*command_line);
3253 case Latitude_record:
3255 recordParts -> storeCommands (*command_line);
3258 case Longitude_record:
3260 recordParts -> storeCommands (*command_line);
3263 case Altitude_record:
3265 recordParts -> storeCommands (*command_line);
3270 recordParts -> storeCommands (*command_line);
3275 recordParts -> storeCommands (*command_line);
3280 recordParts -> storeCommands (*command_line);
3284 /******************** Accelerations ********************/
3285 case V_dot_north_record:
3287 recordParts -> storeCommands (*command_line);
3290 case V_dot_east_record:
3292 recordParts -> storeCommands (*command_line);
3295 case V_dot_down_record:
3297 recordParts -> storeCommands (*command_line);
3300 case U_dot_body_record:
3302 recordParts -> storeCommands (*command_line);
3305 case V_dot_body_record:
3307 recordParts -> storeCommands (*command_line);
3310 case W_dot_body_record:
3312 recordParts -> storeCommands (*command_line);
3315 case A_X_pilot_record:
3317 recordParts -> storeCommands (*command_line);
3320 case A_Y_pilot_record:
3322 recordParts -> storeCommands (*command_line);
3325 case A_Z_pilot_record:
3327 recordParts -> storeCommands (*command_line);
3332 recordParts -> storeCommands (*command_line);
3337 recordParts -> storeCommands (*command_line);
3342 recordParts -> storeCommands (*command_line);
3345 case N_X_pilot_record:
3347 recordParts -> storeCommands (*command_line);
3350 case N_Y_pilot_record:
3352 recordParts -> storeCommands (*command_line);
3355 case N_Z_pilot_record:
3357 recordParts -> storeCommands (*command_line);
3362 recordParts -> storeCommands (*command_line);
3367 recordParts -> storeCommands (*command_line);
3372 recordParts -> storeCommands (*command_line);
3375 case P_dot_body_record:
3377 recordParts -> storeCommands (*command_line);
3380 case Q_dot_body_record:
3382 recordParts -> storeCommands (*command_line);
3385 case R_dot_body_record:
3387 recordParts -> storeCommands (*command_line);
3391 /********************** Velocities *********************/
3392 case V_north_record:
3394 recordParts -> storeCommands (*command_line);
3399 recordParts -> storeCommands (*command_line);
3404 recordParts -> storeCommands (*command_line);
3407 case V_north_rel_ground_record:
3409 recordParts -> storeCommands (*command_line);
3412 case V_east_rel_ground_record:
3414 recordParts -> storeCommands (*command_line);
3417 case V_down_rel_ground_record:
3419 recordParts -> storeCommands (*command_line);
3422 case V_north_airmass_record:
3424 recordParts -> storeCommands (*command_line);
3427 case V_east_airmass_record:
3429 recordParts -> storeCommands (*command_line);
3432 case V_down_airmass_record:
3434 recordParts -> storeCommands (*command_line);
3437 case V_north_rel_airmass_record:
3439 recordParts -> storeCommands (*command_line);
3442 case V_east_rel_airmass_record:
3444 recordParts -> storeCommands (*command_line);
3447 case V_down_rel_airmass_record:
3449 recordParts -> storeCommands (*command_line);
3454 recordParts -> storeCommands (*command_line);
3459 recordParts -> storeCommands (*command_line);
3464 recordParts -> storeCommands (*command_line);
3469 recordParts -> storeCommands (*command_line);
3474 recordParts -> storeCommands (*command_line);
3479 recordParts -> storeCommands (*command_line);
3482 case V_rel_wind_record:
3484 recordParts -> storeCommands (*command_line);
3487 case V_true_kts_record:
3489 recordParts -> storeCommands (*command_line);
3492 case V_rel_ground_record:
3494 recordParts -> storeCommands (*command_line);
3497 case V_inertial_record:
3499 recordParts -> storeCommands (*command_line);
3502 case V_ground_speed_record:
3504 recordParts -> storeCommands (*command_line);
3507 case V_equiv_record:
3509 recordParts -> storeCommands (*command_line);
3512 case V_equiv_kts_record:
3514 recordParts -> storeCommands (*command_line);
3517 case V_calibrated_record:
3519 recordParts -> storeCommands (*command_line);
3522 case V_calibrated_kts_record:
3524 recordParts -> storeCommands (*command_line);
3527 case P_local_record:
3529 recordParts -> storeCommands (*command_line);
3532 case Q_local_record:
3534 recordParts -> storeCommands (*command_line);
3537 case R_local_record:
3539 recordParts -> storeCommands (*command_line);
3544 recordParts -> storeCommands (*command_line);
3549 recordParts -> storeCommands (*command_line);
3554 recordParts -> storeCommands (*command_line);
3557 case P_total_record:
3559 recordParts -> storeCommands (*command_line);
3562 case Q_total_record:
3564 recordParts -> storeCommands (*command_line);
3567 case R_total_record:
3569 recordParts -> storeCommands (*command_line);
3572 case Phi_dot_record:
3574 recordParts -> storeCommands (*command_line);
3577 case Theta_dot_record:
3579 recordParts -> storeCommands (*command_line);
3582 case Psi_dot_record:
3584 recordParts -> storeCommands (*command_line);
3587 case Latitude_dot_record:
3589 recordParts -> storeCommands (*command_line);
3592 case Longitude_dot_record:
3594 recordParts -> storeCommands (*command_line);
3597 case Radius_dot_record:
3599 recordParts -> storeCommands (*command_line);
3603 /************************ Angles ***********************/
3606 recordParts -> storeCommands (*command_line);
3609 case Alpha_deg_record:
3611 recordParts -> storeCommands (*command_line);
3614 case Alpha_dot_record:
3616 recordParts -> storeCommands (*command_line);
3619 case Alpha_dot_deg_record:
3621 recordParts -> storeCommands (*command_line);
3626 recordParts -> storeCommands (*command_line);
3629 case Beta_deg_record:
3631 recordParts -> storeCommands (*command_line);
3634 case Beta_dot_record:
3636 recordParts -> storeCommands (*command_line);
3639 case Beta_dot_deg_record:
3641 recordParts -> storeCommands (*command_line);
3644 case Gamma_vert_record:
3646 recordParts -> storeCommands (*command_line);
3649 case Gamma_vert_deg_record:
3651 recordParts -> storeCommands (*command_line);
3654 case Gamma_horiz_record:
3656 recordParts -> storeCommands (*command_line);
3659 case Gamma_horiz_deg_record:
3661 recordParts -> storeCommands (*command_line);
3665 /**************** Atmospheric Properties ***************/
3666 case Density_record:
3668 recordParts -> storeCommands (*command_line);
3671 case V_sound_record:
3673 recordParts -> storeCommands (*command_line);
3676 case Mach_number_record:
3678 recordParts -> storeCommands (*command_line);
3681 case Static_pressure_record:
3683 recordParts -> storeCommands (*command_line);
3686 case Total_pressure_record:
3688 recordParts -> storeCommands (*command_line);
3691 case Impact_pressure_record:
3693 recordParts -> storeCommands (*command_line);
3696 case Dynamic_pressure_record:
3698 recordParts -> storeCommands (*command_line);
3701 case Static_temperature_record:
3703 recordParts -> storeCommands (*command_line);
3706 case Total_temperature_record:
3708 recordParts -> storeCommands (*command_line);
3712 /******************** Earth Properties *****************/
3713 case Gravity_record:
3715 recordParts -> storeCommands (*command_line);
3718 case Sea_level_radius_record:
3720 recordParts -> storeCommands (*command_line);
3723 case Earth_position_angle_record:
3725 recordParts -> storeCommands (*command_line);
3728 case Runway_altitude_record:
3730 recordParts -> storeCommands (*command_line);
3733 case Runway_latitude_record:
3735 recordParts -> storeCommands (*command_line);
3738 case Runway_longitude_record:
3740 recordParts -> storeCommands (*command_line);
3743 case Runway_heading_record:
3745 recordParts -> storeCommands (*command_line);
3748 case Radius_to_rwy_record:
3750 recordParts -> storeCommands (*command_line);
3753 case D_pilot_north_of_rwy_record:
3755 recordParts -> storeCommands (*command_line);
3758 case D_pilot_east_of_rwy_record:
3760 recordParts -> storeCommands (*command_line);
3763 case D_pilot_above_rwy_record:
3765 recordParts -> storeCommands (*command_line);
3768 case X_pilot_rwy_record:
3770 recordParts -> storeCommands (*command_line);
3773 case Y_pilot_rwy_record:
3775 recordParts -> storeCommands (*command_line);
3778 case H_pilot_rwy_record:
3780 recordParts -> storeCommands (*command_line);
3783 case D_cg_north_of_rwy_record:
3785 recordParts -> storeCommands (*command_line);
3788 case D_cg_east_of_rwy_record:
3790 recordParts -> storeCommands (*command_line);
3793 case D_cg_above_rwy_record:
3795 recordParts -> storeCommands (*command_line);
3798 case X_cg_rwy_record:
3800 recordParts -> storeCommands (*command_line);
3803 case Y_cg_rwy_record:
3805 recordParts -> storeCommands (*command_line);
3808 case H_cg_rwy_record:
3810 recordParts -> storeCommands (*command_line);
3814 /********************* Engine Inputs *******************/
3815 case Throttle_pct_record:
3817 recordParts -> storeCommands (*command_line);
3820 case Throttle_3_record:
3822 recordParts -> storeCommands (*command_line);
3826 /******************** Control Inputs *******************/
3827 case Long_control_record:
3829 recordParts -> storeCommands (*command_line);
3832 case Long_trim_record:
3834 recordParts -> storeCommands (*command_line);
3837 case Long_trim_deg_record:
3839 recordParts -> storeCommands (*command_line);
3842 case elevator_record:
3844 recordParts -> storeCommands (*command_line);
3847 case elevator_deg_record:
3849 recordParts -> storeCommands (*command_line);
3852 case Lat_control_record:
3854 recordParts -> storeCommands (*command_line);
3857 case aileron_record:
3859 recordParts -> storeCommands (*command_line);
3862 case aileron_deg_record:
3864 recordParts -> storeCommands (*command_line);
3867 case Rudder_pedal_record:
3869 recordParts -> storeCommands (*command_line);
3874 recordParts -> storeCommands (*command_line);
3877 case rudder_deg_record:
3879 recordParts -> storeCommands (*command_line);
3882 case Flap_handle_record:
3884 recordParts -> storeCommands (*command_line);
3889 recordParts -> storeCommands (*command_line);
3892 case flap_deg_record:
3894 recordParts -> storeCommands (*command_line);
3898 /****************** Aero Coefficients ******************/
3901 recordParts -> storeCommands (*command_line);
3906 recordParts -> storeCommands (*command_line);
3909 case CDfadeI_record:
3911 recordParts -> storeCommands (*command_line);
3916 recordParts -> storeCommands (*command_line);
3919 case CDfadfI_record:
3921 recordParts -> storeCommands (*command_line);
3926 recordParts -> storeCommands (*command_line);
3931 recordParts -> storeCommands (*command_line);
3936 recordParts -> storeCommands (*command_line);
3939 case CLfadeI_record:
3941 recordParts -> storeCommands (*command_line);
3946 recordParts -> storeCommands (*command_line);
3949 case CLfadfI_record:
3951 recordParts -> storeCommands (*command_line);
3956 recordParts -> storeCommands (*command_line);
3961 recordParts -> storeCommands (*command_line);
3966 recordParts -> storeCommands (*command_line);
3969 case CmfadeI_record:
3971 recordParts -> storeCommands (*command_line);
3976 recordParts -> storeCommands (*command_line);
3979 case CmfadfI_record:
3981 recordParts -> storeCommands (*command_line);
3986 recordParts -> storeCommands (*command_line);
3989 case CYfadaI_record:
3991 recordParts -> storeCommands (*command_line);
3994 case CYfbetadrI_record:
3996 recordParts -> storeCommands (*command_line);
4001 recordParts -> storeCommands (*command_line);
4004 case ClfadaI_record:
4006 recordParts -> storeCommands (*command_line);
4009 case ClfbetadrI_record:
4011 recordParts -> storeCommands (*command_line);
4016 recordParts -> storeCommands (*command_line);
4019 case CnfadaI_record:
4021 recordParts -> storeCommands (*command_line);
4024 case CnfbetadrI_record:
4026 recordParts -> storeCommands (*command_line);
4030 /******************** Ice Detection ********************/
4031 case CLclean_wing_record:
4033 recordParts -> storeCommands (*command_line);
4036 case CLiced_wing_record:
4038 recordParts -> storeCommands (*command_line);
4041 case CLclean_tail_record:
4043 recordParts -> storeCommands (*command_line);
4046 case CLiced_tail_record:
4048 recordParts -> storeCommands (*command_line);
4051 case Lift_clean_wing_record:
4053 recordParts -> storeCommands (*command_line);
4056 case Lift_iced_wing_record:
4058 recordParts -> storeCommands (*command_line);
4061 case Lift_clean_tail_record:
4063 recordParts -> storeCommands (*command_line);
4066 case Lift_iced_tail_record:
4068 recordParts -> storeCommands (*command_line);
4071 case Gamma_clean_wing_record:
4073 recordParts -> storeCommands (*command_line);
4076 case Gamma_iced_wing_record:
4078 recordParts -> storeCommands (*command_line);
4081 case Gamma_clean_tail_record:
4083 recordParts -> storeCommands (*command_line);
4086 case Gamma_iced_tail_record:
4088 recordParts -> storeCommands (*command_line);
4091 case w_clean_wing_record:
4093 recordParts -> storeCommands (*command_line);
4096 case w_iced_wing_record:
4098 recordParts -> storeCommands (*command_line);
4101 case w_clean_tail_record:
4103 recordParts -> storeCommands (*command_line);
4106 case w_iced_tail_record:
4108 recordParts -> storeCommands (*command_line);
4111 case V_total_clean_wing_record:
4113 recordParts -> storeCommands (*command_line);
4116 case V_total_iced_wing_record:
4118 recordParts -> storeCommands (*command_line);
4121 case V_total_clean_tail_record:
4123 recordParts -> storeCommands (*command_line);
4126 case V_total_iced_tail_record:
4128 recordParts -> storeCommands (*command_line);
4131 case beta_flow_clean_wing_record:
4133 recordParts -> storeCommands (*command_line);
4136 case beta_flow_clean_wing_deg_record:
4138 recordParts -> storeCommands (*command_line);
4141 case beta_flow_iced_wing_record:
4143 recordParts -> storeCommands (*command_line);
4146 case beta_flow_iced_wing_deg_record:
4148 recordParts -> storeCommands (*command_line);
4151 case beta_flow_clean_tail_record:
4153 recordParts -> storeCommands (*command_line);
4156 case beta_flow_clean_tail_deg_record:
4158 recordParts -> storeCommands (*command_line);
4161 case beta_flow_iced_tail_record:
4163 recordParts -> storeCommands (*command_line);
4166 case beta_flow_iced_tail_deg_record:
4168 recordParts -> storeCommands (*command_line);
4171 case Dbeta_flow_wing_record:
4173 recordParts -> storeCommands (*command_line);
4176 case Dbeta_flow_wing_deg_record:
4178 recordParts -> storeCommands (*command_line);
4181 case Dbeta_flow_tail_record:
4183 recordParts -> storeCommands (*command_line);
4186 case Dbeta_flow_tail_deg_record:
4188 recordParts -> storeCommands (*command_line);
4191 case pct_beta_flow_wing_record:
4193 recordParts -> storeCommands (*command_line);
4196 case pct_beta_flow_tail_record:
4198 recordParts -> storeCommands (*command_line);
4202 /************************ Forces ***********************/
4203 case F_X_wind_record:
4205 recordParts -> storeCommands (*command_line);
4208 case F_Y_wind_record:
4210 recordParts -> storeCommands (*command_line);
4213 case F_Z_wind_record:
4215 recordParts -> storeCommands (*command_line);
4218 case F_X_aero_record:
4220 recordParts -> storeCommands (*command_line);
4223 case F_Y_aero_record:
4225 recordParts -> storeCommands (*command_line);
4228 case F_Z_aero_record:
4230 recordParts -> storeCommands (*command_line);
4233 case F_X_engine_record:
4235 recordParts -> storeCommands (*command_line);
4238 case F_Y_engine_record:
4240 recordParts -> storeCommands (*command_line);
4243 case F_Z_engine_record:
4245 recordParts -> storeCommands (*command_line);
4248 case F_X_gear_record:
4250 recordParts -> storeCommands (*command_line);
4253 case F_Y_gear_record:
4255 recordParts -> storeCommands (*command_line);
4258 case F_Z_gear_record:
4260 recordParts -> storeCommands (*command_line);
4265 recordParts -> storeCommands (*command_line);
4270 recordParts -> storeCommands (*command_line);
4275 recordParts -> storeCommands (*command_line);
4278 case F_north_record:
4280 recordParts -> storeCommands (*command_line);
4285 recordParts -> storeCommands (*command_line);
4290 recordParts -> storeCommands (*command_line);
4294 /*********************** Moments ***********************/
4295 case M_l_aero_record:
4297 recordParts -> storeCommands (*command_line);
4300 case M_m_aero_record:
4302 recordParts -> storeCommands (*command_line);
4305 case M_n_aero_record:
4307 recordParts -> storeCommands (*command_line);
4310 case M_l_engine_record:
4312 recordParts -> storeCommands (*command_line);
4315 case M_m_engine_record:
4317 recordParts -> storeCommands (*command_line);
4320 case M_n_engine_record:
4322 recordParts -> storeCommands (*command_line);
4325 case M_l_gear_record:
4327 recordParts -> storeCommands (*command_line);
4330 case M_m_gear_record:
4332 recordParts -> storeCommands (*command_line);
4335 case M_n_gear_record:
4337 recordParts -> storeCommands (*command_line);
4342 recordParts -> storeCommands (*command_line);
4347 recordParts -> storeCommands (*command_line);
4352 recordParts -> storeCommands (*command_line);
4357 uiuc_warnings_errors(2, *command_line);
4367 switch(misc_map[linetoken2])
4369 case simpleHingeMomentCoef_flag:
4371 if (check_float(linetoken3))
4372 token3 >> token_value;
4374 uiuc_warnings_errors(1, *command_line);
4376 simpleHingeMomentCoef = token_value;
4379 case dfTimefdf_flag:
4381 dfTimefdf = linetoken3;
4382 /* call 1D File Reader with file name (dfTimefdf);
4383 function returns array of dfs (dfArray) and
4384 corresponding time values (TimeArray) and max
4385 number of terms in arrays (ndf) */
4386 uiuc_1DdataFileReader(dfTimefdf,
4388 dfTimefdf_TimeArray,
4394 uiuc_warnings_errors(2, *command_line);
4404 if (linetoken1=="*")
4406 uiuc_warnings_errors(2, *command_line);
4410 } // end keyword map