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.
46 ----------------------------------------------------------------------
48 AUTHOR(S): Bipin Sehgal <bsehgal@uiuc.edu>
49 Jeff Scott <jscott@mail.com>
50 Michael Selig <m-selig@uiuc.edu>
51 David Megginson <david@megginson.com>
53 ----------------------------------------------------------------------
57 ----------------------------------------------------------------------
61 ----------------------------------------------------------------------
65 ----------------------------------------------------------------------
67 CALLED BY: uiuc_wrapper.cpp
69 ----------------------------------------------------------------------
71 CALLS TO: aircraft.dat
72 tabulated data files (if needed)
74 ----------------------------------------------------------------------
76 COPYRIGHT: (C) 2000 by Michael Selig
78 This program is free software; you can redistribute it and/or
79 modify it under the terms of the GNU General Public License
80 as published by the Free Software Foundation.
82 This program is distributed in the hope that it will be useful,
83 but WITHOUT ANY WARRANTY; without even the implied warranty of
84 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
85 GNU General Public License for more details.
87 You should have received a copy of the GNU General Public License
88 along with this program; if not, write to the Free Software
89 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
90 USA or view http://www.gnu.org/copyleft/gpl.html.
92 **********************************************************************/
94 #include <simgear/compiler.h>
96 #if defined( __MWERKS__ )
97 // -dw- optimizer chokes (big-time) trying to optimize humongous
98 // loop/switch statements
99 #pragma optimization_level 0
103 #include STL_IOSTREAM
105 #include "uiuc_menu.h"
107 #if !defined (SG_HAVE_NATIVE_SGI_COMPILERS)
117 bool check_float(string &token)
120 istrstream stream(token.c_str());
121 return (stream >> value);
125 void uiuc_menu( string aircraft_name )
129 int token_value_recordRate;
130 int token_value_convert1, token_value_convert2, token_value_convert3;
140 /* the following default setting should eventually be moved to a default or uiuc_init routine */
142 recordRate = 1; /* record every time step, default */
143 recordStartTime = 0; /* record from beginning of simulation */
145 /* set speed at which dynamic pressure terms will be accounted for,
146 since if velocity is too small, coefficients will go to infinity */
147 dyn_on_speed = 33; /* 20 kts, default */
151 /* Read the file and get the list of commands */
152 airplane = new ParseFile(aircraft_name); /* struct that includes all lines of the input file */
153 command_list = airplane -> getCommands();
154 /* structs to include all parts included in the input file for specific keyword groups */
155 initParts = new ParseFile();
156 geometryParts = new ParseFile();
157 massParts = new ParseFile();
158 engineParts = new ParseFile();
159 aeroDragParts = new ParseFile();
160 aeroLiftParts = new ParseFile();
161 aeroPitchParts = new ParseFile();
162 aeroSideforceParts = new ParseFile();
163 aeroRollParts = new ParseFile();
164 aeroYawParts = new ParseFile();
165 gearParts = new ParseFile();
166 recordParts = new ParseFile();
168 if (command_list.begin() == command_list.end())
170 cerr << "UIUC ERROR: File " << aircraft_name <<" does not exist" << endl;
174 for (LIST command_line = command_list.begin(); command_line!=command_list.end(); ++command_line)
176 cout << *command_line << endl;
178 linetoken1 = airplane -> getToken (*command_line, 1);
179 linetoken2 = airplane -> getToken (*command_line, 2);
180 linetoken3 = airplane -> getToken (*command_line, 3);
181 linetoken4 = airplane -> getToken (*command_line, 4);
182 linetoken5 = airplane -> getToken (*command_line, 5);
183 linetoken6 = airplane -> getToken (*command_line, 6);
185 istrstream token3(linetoken3.c_str());
186 istrstream token4(linetoken4.c_str());
187 istrstream token5(linetoken5.c_str());
188 istrstream token6(linetoken6.c_str());
190 switch (Keyword_map[linetoken1])
194 switch(init_map[linetoken2])
198 if (check_float(linetoken3))
199 token3 >> token_value;
201 uiuc_warnings_errors(1, *command_line);
203 Dx_pilot = token_value;
204 initParts -> storeCommands (*command_line);
209 if (check_float(linetoken3))
210 token3 >> token_value;
212 uiuc_warnings_errors(1, *command_line);
214 Dy_pilot = token_value;
215 initParts -> storeCommands (*command_line);
220 if (check_float(linetoken3))
221 token3 >> token_value;
223 uiuc_warnings_errors(1, *command_line);
225 Dz_pilot = token_value;
226 initParts -> storeCommands (*command_line);
231 if (check_float(linetoken3))
232 token3 >> token_value;
234 uiuc_warnings_errors(1, *command_line);
237 initParts -> storeCommands (*command_line);
242 if (check_float(linetoken3))
243 token3 >> token_value;
245 uiuc_warnings_errors(1, *command_line);
248 initParts -> storeCommands (*command_line);
253 if (check_float(linetoken3))
254 token3 >> token_value;
256 uiuc_warnings_errors(1, *command_line);
259 initParts -> storeCommands (*command_line);
264 if (check_float(linetoken3))
265 token3 >> token_value;
267 uiuc_warnings_errors(1, *command_line);
269 Altitude = token_value;
270 initParts -> storeCommands (*command_line);
275 if (check_float(linetoken3))
276 token3 >> token_value;
278 uiuc_warnings_errors(1, *command_line);
280 V_north = token_value;
281 initParts -> storeCommands (*command_line);
286 initParts -> storeCommands (*command_line);
287 if (check_float(linetoken3))
288 token3 >> token_value;
290 uiuc_warnings_errors(1, *command_line);
292 V_east = token_value;
297 if (check_float(linetoken3))
298 token3 >> token_value;
300 uiuc_warnings_errors(1, *command_line);
302 V_down = token_value;
303 initParts -> storeCommands (*command_line);
308 if (check_float(linetoken3))
309 token3 >> token_value;
311 uiuc_warnings_errors(1, *command_line);
313 P_body = token_value;
314 initParts -> storeCommands (*command_line);
319 if (check_float(linetoken3))
320 token3 >> token_value;
322 uiuc_warnings_errors(1, *command_line);
324 Q_body = token_value;
325 initParts -> storeCommands (*command_line);
330 if (check_float(linetoken3))
331 token3 >> token_value;
333 uiuc_warnings_errors(1, *command_line);
335 R_body = token_value;
336 initParts -> storeCommands (*command_line);
341 if (check_float(linetoken3))
342 token3 >> token_value;
344 uiuc_warnings_errors(1, *command_line);
347 initParts -> storeCommands (*command_line);
352 if (check_float(linetoken3))
353 token3 >> token_value;
355 uiuc_warnings_errors(1, *command_line);
358 initParts -> storeCommands (*command_line);
363 if (check_float(linetoken3))
364 token3 >> token_value;
366 uiuc_warnings_errors(1, *command_line);
369 initParts -> storeCommands (*command_line);
374 if (check_float(linetoken3))
375 token3 >> token_value;
377 uiuc_warnings_errors(1, *command_line);
379 Long_trim = token_value;
380 initParts -> storeCommands (*command_line);
383 case recordRate_flag:
385 //can't use check_float since variable is integer
386 token3 >> token_value_recordRate;
387 recordRate = 120 / token_value_recordRate;
390 case recordStartTime_flag:
392 if (check_float(linetoken3))
393 token3 >> token_value;
395 uiuc_warnings_errors(1, *command_line);
397 recordStartTime = token_value;
400 case nondim_rate_V_rel_wind_flag:
402 nondim_rate_V_rel_wind = true;
405 case dyn_on_speed_flag:
407 if (check_float(linetoken3))
408 token3 >> token_value;
410 uiuc_warnings_errors(1, *command_line);
412 dyn_on_speed = token_value;
417 uiuc_warnings_errors(2, *command_line);
427 switch(geometry_map[linetoken2])
431 if (check_float(linetoken3))
432 token3 >> token_value;
434 uiuc_warnings_errors(1, *command_line);
437 geometryParts -> storeCommands (*command_line);
442 if (check_float(linetoken3))
443 token3 >> token_value;
445 uiuc_warnings_errors(1, *command_line);
448 geometryParts -> storeCommands (*command_line);
453 if (check_float(linetoken3))
454 token3 >> token_value;
456 uiuc_warnings_errors(1, *command_line);
459 geometryParts -> storeCommands (*command_line);
464 if (check_float(linetoken3))
465 token3 >> token_value;
467 uiuc_warnings_errors(1, *command_line);
470 geometryParts -> storeCommands (*command_line);
475 if (check_float(linetoken3))
476 token3 >> token_value;
478 uiuc_warnings_errors(1, *command_line);
481 geometryParts -> storeCommands (*command_line);
486 if (check_float(linetoken3))
487 token3 >> token_value;
489 uiuc_warnings_errors(1, *command_line);
492 geometryParts -> storeCommands (*command_line);
497 if (check_float(linetoken3))
498 token3 >> token_value;
500 uiuc_warnings_errors(1, *command_line);
503 geometryParts -> storeCommands (*command_line);
508 uiuc_warnings_errors(2, *command_line);
513 } // end geometry map
516 case controlSurface_flag:
518 switch(controlSurface_map[linetoken2])
522 if (check_float(linetoken3))
523 token3 >> token_value;
525 uiuc_warnings_errors(1, *command_line);
529 if (check_float(linetoken4))
530 token4 >> token_value;
532 uiuc_warnings_errors(1, *command_line);
539 if (check_float(linetoken3))
540 token3 >> token_value;
542 uiuc_warnings_errors(1, *command_line);
546 if (check_float(linetoken4))
547 token4 >> token_value;
549 uiuc_warnings_errors(1, *command_line);
556 if (check_float(linetoken3))
557 token3 >> token_value;
559 uiuc_warnings_errors(1, *command_line);
563 if (check_float(linetoken4))
564 token4 >> token_value;
566 uiuc_warnings_errors(1, *command_line);
571 case set_Long_trim_flag:
573 if (check_float(linetoken3))
574 token3 >> token_value;
576 uiuc_warnings_errors(1, *command_line);
578 set_Long_trim = true;
579 elevator_tab = token_value;
582 case set_Long_trim_deg_flag:
584 if (check_float(linetoken3))
585 token3 >> token_value;
587 uiuc_warnings_errors(1, *command_line);
589 set_Long_trim = true;
590 elevator_tab = token_value * DEG_TO_RAD;
593 case zero_Long_trim_flag:
595 zero_Long_trim = true;
598 case elevator_step_flag:
600 // set step input flag
601 elevator_step = true;
603 // read in step angle in degrees and convert
604 if (check_float(linetoken3))
605 token3 >> token_value;
607 uiuc_warnings_errors(1, *command_line);
609 elevator_step_angle = token_value * DEG_TO_RAD;
611 // read in step start time
612 if (check_float(linetoken4))
613 token4 >> token_value;
615 uiuc_warnings_errors(1, *command_line);
617 elevator_step_startTime = token_value;
620 case elevator_singlet_flag:
622 // set singlet input flag
623 elevator_singlet = true;
625 // read in singlet angle in degrees and convert
626 if (check_float(linetoken3))
627 token3 >> token_value;
629 uiuc_warnings_errors(1, *command_line);
631 elevator_singlet_angle = token_value * DEG_TO_RAD;
633 // read in singlet start time
634 if (check_float(linetoken4))
635 token4 >> token_value;
637 uiuc_warnings_errors(1, *command_line);
639 elevator_singlet_startTime = token_value;
641 // read in singlet duration
642 if (check_float(linetoken5))
643 token5 >> token_value;
645 uiuc_warnings_errors(1, *command_line);
647 elevator_singlet_duration = token_value;
650 case elevator_doublet_flag:
652 // set doublet input flag
653 elevator_doublet = true;
655 // read in doublet angle in degrees and convert
656 if (check_float(linetoken3))
657 token3 >> token_value;
659 uiuc_warnings_errors(1, *command_line);
661 elevator_doublet_angle = token_value * DEG_TO_RAD;
663 // read in doublet start time
664 if (check_float(linetoken4))
665 token4 >> token_value;
667 uiuc_warnings_errors(1, *command_line);
669 elevator_doublet_startTime = token_value;
671 // read in doublet duration
672 if (check_float(linetoken5))
673 token5 >> token_value;
675 uiuc_warnings_errors(1, *command_line);
677 elevator_doublet_duration = token_value;
680 case elevator_input_flag:
682 elevator_input = true;
683 elevator_input_file = linetoken3;
684 token4 >> token_value_convert1;
685 token5 >> token_value_convert2;
686 convert_y = uiuc_convert(token_value_convert1);
687 convert_x = uiuc_convert(token_value_convert2);
688 uiuc_1DdataFileReader(elevator_input_file,
689 elevator_input_timeArray,
690 elevator_input_deArray,
691 elevator_input_ntime);
692 token6 >> token_value;
693 elevator_input_startTime = token_value;
698 uiuc_warnings_errors(2, *command_line);
703 } // end controlSurface map
708 switch(mass_map[linetoken2])
712 if (check_float(linetoken3))
713 token3 >> token_value;
715 uiuc_warnings_errors(1, *command_line);
717 Weight = token_value;
718 Mass = Weight * INVG;
719 massParts -> storeCommands (*command_line);
724 if (check_float(linetoken3))
725 token3 >> token_value;
727 uiuc_warnings_errors(1, *command_line);
730 massParts -> storeCommands (*command_line);
735 if (check_float(linetoken3))
736 token3 >> token_value;
738 uiuc_warnings_errors(1, *command_line);
741 massParts -> storeCommands (*command_line);
746 if (check_float(linetoken3))
747 token3 >> token_value;
749 uiuc_warnings_errors(1, *command_line);
752 massParts -> storeCommands (*command_line);
757 if (check_float(linetoken3))
758 token3 >> token_value;
760 uiuc_warnings_errors(1, *command_line);
763 massParts -> storeCommands (*command_line);
768 if (check_float(linetoken3))
769 token3 >> token_value;
771 uiuc_warnings_errors(1, *command_line);
774 massParts -> storeCommands (*command_line);
779 uiuc_warnings_errors(2, *command_line);
789 switch(engine_map[linetoken2])
791 case simpleSingle_flag:
793 if (check_float(linetoken3))
794 token3 >> token_value;
796 uiuc_warnings_errors(1, *command_line);
798 simpleSingleMaxThrust = token_value;
799 engineParts -> storeCommands (*command_line);
804 engineParts -> storeCommands (*command_line);
809 engineParts -> storeCommands (*command_line);
814 uiuc_warnings_errors(2, *command_line);
824 switch(CD_map[linetoken2])
828 if (check_float(linetoken3))
829 token3 >> token_value;
831 uiuc_warnings_errors(1, *command_line);
835 aeroDragParts -> storeCommands (*command_line);
840 if (check_float(linetoken3))
841 token3 >> token_value;
843 uiuc_warnings_errors(1, *command_line);
847 aeroDragParts -> storeCommands (*command_line);
852 if (check_float(linetoken3))
853 token3 >> token_value;
855 uiuc_warnings_errors(1, *command_line);
859 aeroDragParts -> storeCommands (*command_line);
864 if (check_float(linetoken3))
865 token3 >> token_value;
867 uiuc_warnings_errors(1, *command_line);
869 CD_adot = token_value;
870 CD_adot_clean = CD_adot;
871 aeroDragParts -> storeCommands (*command_line);
876 if (check_float(linetoken3))
877 token3 >> token_value;
879 uiuc_warnings_errors(1, *command_line);
883 aeroDragParts -> storeCommands (*command_line);
888 if (check_float(linetoken3))
889 token3 >> token_value;
891 uiuc_warnings_errors(1, *command_line);
894 aeroDragParts -> storeCommands (*command_line);
899 if (check_float(linetoken3))
900 token3 >> token_value;
902 uiuc_warnings_errors(1, *command_line);
906 aeroDragParts -> storeCommands (*command_line);
912 token4 >> token_value_convert1;
913 token5 >> token_value_convert2;
914 convert_y = uiuc_convert(token_value_convert1);
915 convert_x = uiuc_convert(token_value_convert2);
916 /* call 1D File Reader with file name (CDfa) and conversion
917 factors; function returns array of alphas (aArray) and
918 corresponding CD values (CDArray) and max number of
919 terms in arrays (nAlpha) */
920 uiuc_1DdataFileReader(CDfa,
924 aeroDragParts -> storeCommands (*command_line);
930 token4 >> token_value_convert1;
931 token5 >> token_value_convert2;
932 convert_y = uiuc_convert(token_value_convert1);
933 convert_x = uiuc_convert(token_value_convert2);
934 /* call 1D File Reader with file name (CDfCL) and conversion
935 factors; function returns array of CLs (CLArray) and
936 corresponding CD values (CDArray) and max number of
937 terms in arrays (nCL) */
938 uiuc_1DdataFileReader(CDfCL,
942 aeroDragParts -> storeCommands (*command_line);
948 token4 >> token_value_convert1;
949 token5 >> token_value_convert2;
950 token6 >> token_value_convert3;
951 convert_z = uiuc_convert(token_value_convert1);
952 convert_x = uiuc_convert(token_value_convert2);
953 convert_y = uiuc_convert(token_value_convert3);
954 /* call 2D File Reader with file name (CDfade) and
955 conversion factors; function returns array of
956 elevator deflections (deArray) and corresponding
957 alpha (aArray) and delta CD (CDArray) values and
958 max number of terms in alpha arrays (nAlphaArray)
959 and deflection array (nde) */
960 uiuc_2DdataFileReader(CDfade,
966 aeroDragParts -> storeCommands (*command_line);
972 token4 >> token_value_convert1;
973 token5 >> token_value_convert2;
974 convert_y = uiuc_convert(token_value_convert1);
975 convert_x = uiuc_convert(token_value_convert2);
976 /* call 1D File Reader with file name (CDfdf) and conversion
977 factors; function returns array of dfs (dfArray) and
978 corresponding CD values (CDArray) and max number of
979 terms in arrays (ndf) */
980 uiuc_1DdataFileReader(CDfdf,
984 aeroDragParts -> storeCommands (*command_line);
990 token4 >> token_value_convert1;
991 token5 >> token_value_convert2;
992 token6 >> token_value_convert3;
993 convert_z = uiuc_convert(token_value_convert1);
994 convert_x = uiuc_convert(token_value_convert2);
995 convert_y = uiuc_convert(token_value_convert3);
996 /* call 2D File Reader with file name (CDfadf) and
997 conversion factors; function returns array of
998 flap deflections (dfArray) and corresponding
999 alpha (aArray) and delta CD (CDArray) values and
1000 max number of terms in alpha arrays (nAlphaArray)
1001 and deflection array (ndf) */
1002 uiuc_2DdataFileReader(CDfadf,
1008 aeroDragParts -> storeCommands (*command_line);
1013 if (check_float(linetoken3))
1014 token3 >> token_value;
1016 uiuc_warnings_errors(1, *command_line);
1020 aeroDragParts -> storeCommands (*command_line);
1025 if (check_float(linetoken3))
1026 token3 >> token_value;
1028 uiuc_warnings_errors(1, *command_line);
1032 aeroDragParts -> storeCommands (*command_line);
1037 if (check_float(linetoken3))
1038 token3 >> token_value;
1040 uiuc_warnings_errors(1, *command_line);
1044 aeroDragParts -> storeCommands (*command_line);
1049 if (check_float(linetoken3))
1050 token3 >> token_value;
1052 uiuc_warnings_errors(1, *command_line);
1054 CX_a2 = token_value;
1055 CX_a2_clean = CX_a2;
1056 aeroDragParts -> storeCommands (*command_line);
1061 if (check_float(linetoken3))
1062 token3 >> token_value;
1064 uiuc_warnings_errors(1, *command_line);
1066 CX_a3 = token_value;
1067 CX_a3_clean = CX_a3;
1068 aeroDragParts -> storeCommands (*command_line);
1073 if (check_float(linetoken3))
1074 token3 >> token_value;
1076 uiuc_warnings_errors(1, *command_line);
1078 CX_adot = token_value;
1079 CX_adot_clean = CX_adot;
1080 aeroDragParts -> storeCommands (*command_line);
1085 if (check_float(linetoken3))
1086 token3 >> token_value;
1088 uiuc_warnings_errors(1, *command_line);
1092 aeroDragParts -> storeCommands (*command_line);
1097 if (check_float(linetoken3))
1098 token3 >> token_value;
1100 uiuc_warnings_errors(1, *command_line);
1102 CX_de = token_value;
1103 CX_de_clean = CX_de;
1104 aeroDragParts -> storeCommands (*command_line);
1109 if (check_float(linetoken3))
1110 token3 >> token_value;
1112 uiuc_warnings_errors(1, *command_line);
1114 CX_dr = token_value;
1115 CX_dr_clean = CX_dr;
1116 aeroDragParts -> storeCommands (*command_line);
1121 if (check_float(linetoken3))
1122 token3 >> token_value;
1124 uiuc_warnings_errors(1, *command_line);
1126 CX_df = token_value;
1127 CX_df_clean = CX_df;
1128 aeroDragParts -> storeCommands (*command_line);
1133 if (check_float(linetoken3))
1134 token3 >> token_value;
1136 uiuc_warnings_errors(1, *command_line);
1138 CX_adf = token_value;
1139 CX_adf_clean = CX_adf;
1140 aeroDragParts -> storeCommands (*command_line);
1145 uiuc_warnings_errors(2, *command_line);
1155 switch(CL_map[linetoken2])
1159 if (check_float(linetoken3))
1160 token3 >> token_value;
1162 uiuc_warnings_errors(1, *command_line);
1166 aeroLiftParts -> storeCommands (*command_line);
1171 if (check_float(linetoken3))
1172 token3 >> token_value;
1174 uiuc_warnings_errors(1, *command_line);
1178 aeroLiftParts -> storeCommands (*command_line);
1183 if (check_float(linetoken3))
1184 token3 >> token_value;
1186 uiuc_warnings_errors(1, *command_line);
1188 CL_adot = token_value;
1189 CL_adot_clean = CL_adot;
1190 aeroLiftParts -> storeCommands (*command_line);
1195 if (check_float(linetoken3))
1196 token3 >> token_value;
1198 uiuc_warnings_errors(1, *command_line);
1202 aeroLiftParts -> storeCommands (*command_line);
1207 if (check_float(linetoken3))
1208 token3 >> token_value;
1210 uiuc_warnings_errors(1, *command_line);
1212 CL_ih = token_value;
1213 aeroLiftParts -> storeCommands (*command_line);
1218 if (check_float(linetoken3))
1219 token3 >> token_value;
1221 uiuc_warnings_errors(1, *command_line);
1223 CL_de = token_value;
1224 CL_de_clean = CL_de;
1225 aeroLiftParts -> storeCommands (*command_line);
1231 token4 >> token_value_convert1;
1232 token5 >> token_value_convert2;
1233 convert_y = uiuc_convert(token_value_convert1);
1234 convert_x = uiuc_convert(token_value_convert2);
1235 /* call 1D File Reader with file name (CLfa) and conversion
1236 factors; function returns array of alphas (aArray) and
1237 corresponding CL values (CLArray) and max number of
1238 terms in arrays (nAlpha) */
1239 uiuc_1DdataFileReader(CLfa,
1243 aeroLiftParts -> storeCommands (*command_line);
1248 CLfade = linetoken3;
1249 token4 >> token_value_convert1;
1250 token5 >> token_value_convert2;
1251 token6 >> token_value_convert3;
1252 convert_z = uiuc_convert(token_value_convert1);
1253 convert_x = uiuc_convert(token_value_convert2);
1254 convert_y = uiuc_convert(token_value_convert3);
1255 /* call 2D File Reader with file name (CLfade) and
1256 conversion factors; function returns array of
1257 elevator deflections (deArray) and corresponding
1258 alpha (aArray) and delta CL (CLArray) values and
1259 max number of terms in alpha arrays (nAlphaArray)
1260 and deflection array (nde) */
1261 uiuc_2DdataFileReader(CLfade,
1267 aeroLiftParts -> storeCommands (*command_line);
1273 token4 >> token_value_convert1;
1274 token5 >> token_value_convert2;
1275 convert_y = uiuc_convert(token_value_convert1);
1276 convert_x = uiuc_convert(token_value_convert2);
1277 /* call 1D File Reader with file name (CLfdf) and conversion
1278 factors; function returns array of dfs (dfArray) and
1279 corresponding CL values (CLArray) and max number of
1280 terms in arrays (ndf) */
1281 uiuc_1DdataFileReader(CLfdf,
1285 aeroLiftParts -> storeCommands (*command_line);
1287 // additional variables to streamline flap routine in aerodeflections
1289 int temp_counter = 1;
1290 while (temp_counter <= ndf)
1292 dfArray[temp_counter] = CLfdf_dfArray[temp_counter];
1293 TimeArray[temp_counter] = dfTimefdf_TimeArray[temp_counter];
1300 CLfadf = linetoken3;
1301 token4 >> token_value_convert1;
1302 token5 >> token_value_convert2;
1303 token6 >> token_value_convert3;
1304 convert_z = uiuc_convert(token_value_convert1);
1305 convert_x = uiuc_convert(token_value_convert2);
1306 convert_y = uiuc_convert(token_value_convert3);
1307 /* call 2D File Reader with file name (CLfadf) and
1308 conversion factors; function returns array of
1309 flap deflections (dfArray) and corresponding
1310 alpha (aArray) and delta CL (CLArray) values and
1311 max number of terms in alpha arrays (nAlphaArray)
1312 and deflection array (ndf) */
1313 uiuc_2DdataFileReader(CLfadf,
1319 aeroLiftParts -> storeCommands (*command_line);
1324 if (check_float(linetoken3))
1325 token3 >> token_value;
1327 uiuc_warnings_errors(1, *command_line);
1331 aeroLiftParts -> storeCommands (*command_line);
1336 if (check_float(linetoken3))
1337 token3 >> token_value;
1339 uiuc_warnings_errors(1, *command_line);
1343 aeroLiftParts -> storeCommands (*command_line);
1348 if (check_float(linetoken3))
1349 token3 >> token_value;
1351 uiuc_warnings_errors(1, *command_line);
1353 CZ_a2 = token_value;
1354 CZ_a2_clean = CZ_a2;
1355 aeroLiftParts -> storeCommands (*command_line);
1360 if (check_float(linetoken3))
1361 token3 >> token_value;
1363 uiuc_warnings_errors(1, *command_line);
1365 CZ_a3 = token_value;
1366 CZ_a3_clean = CZ_a3;
1367 aeroLiftParts -> storeCommands (*command_line);
1372 if (check_float(linetoken3))
1373 token3 >> token_value;
1375 uiuc_warnings_errors(1, *command_line);
1377 CZ_adot = token_value;
1378 CZ_adot_clean = CZ_adot;
1379 aeroLiftParts -> storeCommands (*command_line);
1384 if (check_float(linetoken3))
1385 token3 >> token_value;
1387 uiuc_warnings_errors(1, *command_line);
1391 aeroLiftParts -> storeCommands (*command_line);
1396 if (check_float(linetoken3))
1397 token3 >> token_value;
1399 uiuc_warnings_errors(1, *command_line);
1401 CZ_de = token_value;
1402 CZ_de_clean = CZ_de;
1403 aeroLiftParts -> storeCommands (*command_line);
1408 if (check_float(linetoken3))
1409 token3 >> token_value;
1411 uiuc_warnings_errors(1, *command_line);
1413 CZ_deb2 = token_value;
1414 CZ_deb2_clean = CZ_deb2;
1415 aeroLiftParts -> storeCommands (*command_line);
1420 if (check_float(linetoken3))
1421 token3 >> token_value;
1423 uiuc_warnings_errors(1, *command_line);
1425 CZ_df = token_value;
1426 CZ_df_clean = CZ_df;
1427 aeroLiftParts -> storeCommands (*command_line);
1432 if (check_float(linetoken3))
1433 token3 >> token_value;
1435 uiuc_warnings_errors(1, *command_line);
1437 CZ_adf = token_value;
1438 CZ_adf_clean = CZ_adf;
1439 aeroLiftParts -> storeCommands (*command_line);
1444 uiuc_warnings_errors(2, *command_line);
1454 switch(Cm_map[linetoken2])
1458 if (check_float(linetoken3))
1459 token3 >> token_value;
1461 uiuc_warnings_errors(1, *command_line);
1465 aeroPitchParts -> storeCommands (*command_line);
1470 if (check_float(linetoken3))
1471 token3 >> token_value;
1473 uiuc_warnings_errors(1, *command_line);
1477 aeroPitchParts -> storeCommands (*command_line);
1482 if (check_float(linetoken3))
1483 token3 >> token_value;
1485 uiuc_warnings_errors(1, *command_line);
1487 Cm_a2 = token_value;
1488 Cm_a2_clean = Cm_a2;
1489 aeroPitchParts -> storeCommands (*command_line);
1494 if (check_float(linetoken3))
1495 token3 >> token_value;
1497 uiuc_warnings_errors(1, *command_line);
1499 Cm_adot = token_value;
1500 Cm_adot_clean = Cm_adot;
1501 aeroPitchParts -> storeCommands (*command_line);
1506 if (check_float(linetoken3))
1507 token3 >> token_value;
1509 uiuc_warnings_errors(1, *command_line);
1513 aeroPitchParts -> storeCommands (*command_line);
1518 if (check_float(linetoken3))
1519 token3 >> token_value;
1521 uiuc_warnings_errors(1, *command_line);
1523 Cm_ih = token_value;
1524 aeroPitchParts -> storeCommands (*command_line);
1529 if (check_float(linetoken3))
1530 token3 >> token_value;
1532 uiuc_warnings_errors(1, *command_line);
1534 Cm_de = token_value;
1535 Cm_de_clean = Cm_de;
1536 aeroPitchParts -> storeCommands (*command_line);
1541 if (check_float(linetoken3))
1542 token3 >> token_value;
1544 uiuc_warnings_errors(1, *command_line);
1546 Cm_b2 = token_value;
1547 Cm_b2_clean = Cm_b2;
1548 aeroPitchParts -> storeCommands (*command_line);
1553 if (check_float(linetoken3))
1554 token3 >> token_value;
1556 uiuc_warnings_errors(1, *command_line);
1560 aeroPitchParts -> storeCommands (*command_line);
1565 if (check_float(linetoken3))
1566 token3 >> token_value;
1568 uiuc_warnings_errors(1, *command_line);
1570 Cm_df = token_value;
1571 Cm_df_clean = Cm_df;
1572 aeroPitchParts -> storeCommands (*command_line);
1578 token4 >> token_value_convert1;
1579 token5 >> token_value_convert2;
1580 convert_y = uiuc_convert(token_value_convert1);
1581 convert_x = uiuc_convert(token_value_convert2);
1582 /* call 1D File Reader with file name (Cmfa) and conversion
1583 factors; function returns array of alphas (aArray) and
1584 corresponding Cm values (CmArray) and max number of
1585 terms in arrays (nAlpha) */
1586 uiuc_1DdataFileReader(Cmfa,
1590 aeroPitchParts -> storeCommands (*command_line);
1595 Cmfade = linetoken3;
1596 token4 >> token_value_convert1;
1597 token5 >> token_value_convert2;
1598 token6 >> token_value_convert3;
1599 convert_z = uiuc_convert(token_value_convert1);
1600 convert_x = uiuc_convert(token_value_convert2);
1601 convert_y = uiuc_convert(token_value_convert3);
1602 /* call 2D File Reader with file name (Cmfade) and
1603 conversion factors; function returns array of
1604 elevator deflections (deArray) and corresponding
1605 alpha (aArray) and delta Cm (CmArray) values and
1606 max number of terms in alpha arrays (nAlphaArray)
1607 and deflection array (nde) */
1608 uiuc_2DdataFileReader(Cmfade,
1614 aeroPitchParts -> storeCommands (*command_line);
1620 token4 >> token_value_convert1;
1621 token5 >> token_value_convert2;
1622 convert_y = uiuc_convert(token_value_convert1);
1623 convert_x = uiuc_convert(token_value_convert2);
1624 /* call 1D File Reader with file name (Cmfdf) and conversion
1625 factors; function returns array of dfs (dfArray) and
1626 corresponding Cm values (CmArray) and max number of
1627 terms in arrays (ndf) */
1628 uiuc_1DdataFileReader(Cmfdf,
1632 aeroPitchParts -> storeCommands (*command_line);
1637 Cmfadf = linetoken3;
1638 token4 >> token_value_convert1;
1639 token5 >> token_value_convert2;
1640 token6 >> token_value_convert3;
1641 convert_z = uiuc_convert(token_value_convert1);
1642 convert_x = uiuc_convert(token_value_convert2);
1643 convert_y = uiuc_convert(token_value_convert3);
1644 /* call 2D File Reader with file name (Cmfadf) and
1645 conversion factors; function returns array of
1646 flap deflections (dfArray) and corresponding
1647 alpha (aArray) and delta Cm (CmArray) values and
1648 max number of terms in alpha arrays (nAlphaArray)
1649 and deflection array (ndf) */
1650 uiuc_2DdataFileReader(Cmfadf,
1656 aeroPitchParts -> storeCommands (*command_line);
1661 uiuc_warnings_errors(2, *command_line);
1671 switch(CY_map[linetoken2])
1675 if (check_float(linetoken3))
1676 token3 >> token_value;
1678 uiuc_warnings_errors(1, *command_line);
1682 aeroSideforceParts -> storeCommands (*command_line);
1687 if (check_float(linetoken3))
1688 token3 >> token_value;
1690 uiuc_warnings_errors(1, *command_line);
1692 CY_beta = token_value;
1693 CY_beta_clean = CY_beta;
1694 aeroSideforceParts -> storeCommands (*command_line);
1699 if (check_float(linetoken3))
1700 token3 >> token_value;
1702 uiuc_warnings_errors(1, *command_line);
1706 aeroSideforceParts -> storeCommands (*command_line);
1711 if (check_float(linetoken3))
1712 token3 >> token_value;
1714 uiuc_warnings_errors(1, *command_line);
1718 aeroSideforceParts -> storeCommands (*command_line);
1723 if (check_float(linetoken3))
1724 token3 >> token_value;
1726 uiuc_warnings_errors(1, *command_line);
1728 CY_da = token_value;
1729 CY_da_clean = CY_da;
1730 aeroSideforceParts -> storeCommands (*command_line);
1735 if (check_float(linetoken3))
1736 token3 >> token_value;
1738 uiuc_warnings_errors(2, *command_line);
1740 CY_dr = token_value;
1741 CY_dr_clean = CY_dr;
1742 aeroSideforceParts -> storeCommands (*command_line);
1747 if (check_float(linetoken3))
1748 token3 >> token_value;
1750 uiuc_warnings_errors(2, *command_line);
1752 CY_dra = token_value;
1753 CY_dra_clean = CY_dra;
1754 aeroSideforceParts -> storeCommands (*command_line);
1759 if (check_float(linetoken3))
1760 token3 >> token_value;
1762 uiuc_warnings_errors(2, *command_line);
1764 CY_bdot = token_value;
1765 CY_bdot_clean = CY_bdot;
1766 aeroSideforceParts -> storeCommands (*command_line);
1771 CYfada = linetoken3;
1772 token4 >> token_value_convert1;
1773 token5 >> token_value_convert2;
1774 token6 >> token_value_convert3;
1775 convert_z = uiuc_convert(token_value_convert1);
1776 convert_x = uiuc_convert(token_value_convert2);
1777 convert_y = uiuc_convert(token_value_convert3);
1778 /* call 2D File Reader with file name (CYfada) and
1779 conversion factors; function returns array of
1780 aileron deflections (daArray) and corresponding
1781 alpha (aArray) and delta CY (CYArray) values and
1782 max number of terms in alpha arrays (nAlphaArray)
1783 and deflection array (nda) */
1784 uiuc_2DdataFileReader(CYfada,
1790 aeroSideforceParts -> storeCommands (*command_line);
1793 case CYfbetadr_flag:
1795 CYfbetadr = linetoken3;
1796 token4 >> token_value_convert1;
1797 token5 >> token_value_convert2;
1798 token6 >> token_value_convert3;
1799 convert_z = uiuc_convert(token_value_convert1);
1800 convert_x = uiuc_convert(token_value_convert2);
1801 convert_y = uiuc_convert(token_value_convert3);
1802 /* call 2D File Reader with file name (CYfbetadr) and
1803 conversion factors; function returns array of
1804 rudder deflections (drArray) and corresponding
1805 beta (betaArray) and delta CY (CYArray) values and
1806 max number of terms in beta arrays (nBetaArray)
1807 and deflection array (ndr) */
1808 uiuc_2DdataFileReader(CYfbetadr,
1809 CYfbetadr_betaArray,
1812 CYfbetadr_nBetaArray,
1814 aeroSideforceParts -> storeCommands (*command_line);
1819 uiuc_warnings_errors(2, *command_line);
1829 switch(Cl_map[linetoken2])
1833 if (check_float(linetoken3))
1834 token3 >> token_value;
1836 uiuc_warnings_errors(1, *command_line);
1840 aeroRollParts -> storeCommands (*command_line);
1845 if (check_float(linetoken3))
1846 token3 >> token_value;
1848 uiuc_warnings_errors(1, *command_line);
1850 Cl_beta = token_value;
1851 Cl_beta_clean = Cl_beta;
1852 aeroRollParts -> storeCommands (*command_line);
1857 if (check_float(linetoken3))
1858 token3 >> token_value;
1860 uiuc_warnings_errors(1, *command_line);
1864 aeroRollParts -> storeCommands (*command_line);
1869 if (check_float(linetoken3))
1870 token3 >> token_value;
1872 uiuc_warnings_errors(1, *command_line);
1876 aeroRollParts -> storeCommands (*command_line);
1881 if (check_float(linetoken3))
1882 token3 >> token_value;
1884 uiuc_warnings_errors(1, *command_line);
1886 Cl_da = token_value;
1887 Cl_da_clean = Cl_da;
1888 aeroRollParts -> storeCommands (*command_line);
1893 if (check_float(linetoken3))
1894 token3 >> token_value;
1896 uiuc_warnings_errors(1, *command_line);
1898 Cl_dr = token_value;
1899 Cl_dr_clean = Cl_dr;
1900 aeroRollParts -> storeCommands (*command_line);
1905 if (check_float(linetoken3))
1906 token3 >> token_value;
1908 uiuc_warnings_errors(1, *command_line);
1910 Cl_daa = token_value;
1911 Cl_daa_clean = Cl_daa;
1912 aeroRollParts -> storeCommands (*command_line);
1917 Clfada = linetoken3;
1918 token4 >> token_value_convert1;
1919 token5 >> token_value_convert2;
1920 token6 >> token_value_convert3;
1921 convert_z = uiuc_convert(token_value_convert1);
1922 convert_x = uiuc_convert(token_value_convert2);
1923 convert_y = uiuc_convert(token_value_convert3);
1924 /* call 2D File Reader with file name (Clfada) and
1925 conversion factors; function returns array of
1926 aileron deflections (daArray) and corresponding
1927 alpha (aArray) and delta Cl (ClArray) values and
1928 max number of terms in alpha arrays (nAlphaArray)
1929 and deflection array (nda) */
1930 uiuc_2DdataFileReader(Clfada,
1936 aeroRollParts -> storeCommands (*command_line);
1939 case Clfbetadr_flag:
1941 Clfbetadr = linetoken3;
1942 token4 >> token_value_convert1;
1943 token5 >> token_value_convert2;
1944 token6 >> token_value_convert3;
1945 convert_z = uiuc_convert(token_value_convert1);
1946 convert_x = uiuc_convert(token_value_convert2);
1947 convert_y = uiuc_convert(token_value_convert3);
1948 /* call 2D File Reader with file name (Clfbetadr) and
1949 conversion factors; function returns array of
1950 rudder deflections (drArray) and corresponding
1951 beta (betaArray) and delta Cl (ClArray) values and
1952 max number of terms in beta arrays (nBetaArray)
1953 and deflection array (ndr) */
1954 uiuc_2DdataFileReader(Clfbetadr,
1955 Clfbetadr_betaArray,
1958 Clfbetadr_nBetaArray,
1960 aeroRollParts -> storeCommands (*command_line);
1965 uiuc_warnings_errors(2, *command_line);
1975 switch(Cn_map[linetoken2])
1979 if (check_float(linetoken3))
1980 token3 >> token_value;
1982 uiuc_warnings_errors(1, *command_line);
1986 aeroYawParts -> storeCommands (*command_line);
1991 if (check_float(linetoken3))
1992 token3 >> token_value;
1994 uiuc_warnings_errors(1, *command_line);
1996 Cn_beta = token_value;
1997 Cn_beta_clean = Cn_beta;
1998 aeroYawParts -> storeCommands (*command_line);
2003 if (check_float(linetoken3))
2004 token3 >> token_value;
2006 uiuc_warnings_errors(1, *command_line);
2010 aeroYawParts -> storeCommands (*command_line);
2015 if (check_float(linetoken3))
2016 token3 >> token_value;
2018 uiuc_warnings_errors(1, *command_line);
2022 aeroYawParts -> storeCommands (*command_line);
2027 if (check_float(linetoken3))
2028 token3 >> token_value;
2030 uiuc_warnings_errors(1, *command_line);
2032 Cn_da = token_value;
2033 Cn_da_clean = Cn_da;
2034 aeroYawParts -> storeCommands (*command_line);
2039 if (check_float(linetoken3))
2040 token3 >> token_value;
2042 uiuc_warnings_errors(1, *command_line);
2044 Cn_dr = token_value;
2045 Cn_dr_clean = Cn_dr;
2046 aeroYawParts -> storeCommands (*command_line);
2051 if (check_float(linetoken3))
2052 token3 >> token_value;
2054 uiuc_warnings_errors(1, *command_line);
2058 aeroYawParts -> storeCommands (*command_line);
2063 if (check_float(linetoken3))
2064 token3 >> token_value;
2066 uiuc_warnings_errors(1, *command_line);
2068 Cn_b3 = token_value;
2069 Cn_b3_clean = Cn_b3;
2070 aeroYawParts -> storeCommands (*command_line);
2075 Cnfada = linetoken3;
2076 token4 >> token_value_convert1;
2077 token5 >> token_value_convert2;
2078 token6 >> token_value_convert3;
2079 convert_z = uiuc_convert(token_value_convert1);
2080 convert_x = uiuc_convert(token_value_convert2);
2081 convert_y = uiuc_convert(token_value_convert3);
2082 /* call 2D File Reader with file name (Cnfada) and
2083 conversion factors; function returns array of
2084 aileron deflections (daArray) and corresponding
2085 alpha (aArray) and delta Cn (CnArray) values and
2086 max number of terms in alpha arrays (nAlphaArray)
2087 and deflection array (nda) */
2088 uiuc_2DdataFileReader(Cnfada,
2094 aeroYawParts -> storeCommands (*command_line);
2097 case Cnfbetadr_flag:
2099 Cnfbetadr = linetoken3;
2100 token4 >> token_value_convert1;
2101 token5 >> token_value_convert2;
2102 token6 >> token_value_convert3;
2103 convert_z = uiuc_convert(token_value_convert1);
2104 convert_x = uiuc_convert(token_value_convert2);
2105 convert_y = uiuc_convert(token_value_convert3);
2106 /* call 2D File Reader with file name (Cnfbetadr) and
2107 conversion factors; function returns array of
2108 rudder deflections (drArray) and corresponding
2109 beta (betaArray) and delta Cn (CnArray) values and
2110 max number of terms in beta arrays (nBetaArray)
2111 and deflection array (ndr) */
2112 uiuc_2DdataFileReader(Cnfbetadr,
2113 Cnfbetadr_betaArray,
2116 Cnfbetadr_nBetaArray,
2118 aeroYawParts -> storeCommands (*command_line);
2123 uiuc_warnings_errors(2, *command_line);
2135 if (index < 0 || index >= 16)
2136 uiuc_warnings_errors(1, *command_line);
2137 switch(gear_map[linetoken2])
2141 if (check_float(linetoken3))
2142 token4 >> token_value;
2144 uiuc_warnings_errors(1, *command_line);
2145 D_gear_v[index][0] = token_value;
2146 gear_model[index] = true;
2151 if (check_float(linetoken3))
2152 token4 >> token_value;
2154 uiuc_warnings_errors(1, *command_line);
2155 D_gear_v[index][1] = token_value;
2156 gear_model[index] = true;
2161 if (check_float(linetoken3))
2162 token4 >> token_value;
2164 uiuc_warnings_errors(1, *command_line);
2165 D_gear_v[index][2] = token_value;
2166 gear_model[index] = true;
2171 if (check_float(linetoken3))
2172 token4 >> token_value;
2174 uiuc_warnings_errors(1, *command_line);
2175 cgear[index] = token_value;
2176 gear_model[index] = true;
2181 if (check_float(linetoken3))
2182 token4 >> token_value;
2184 uiuc_warnings_errors(1, *command_line);
2185 kgear[index] = token_value;
2186 gear_model[index] = true;
2191 if (check_float(linetoken3))
2192 token4 >> token_value;
2194 uiuc_warnings_errors(1, *command_line);
2195 muGear[index] = token_value;
2196 gear_model[index] = true;
2199 case strutLength_flag:
2201 if (check_float(linetoken3))
2202 token4 >> token_value;
2204 uiuc_warnings_errors(1, *command_line);
2205 strutLength[index] = token_value;
2206 gear_model[index] = true;
2211 uiuc_warnings_errors(2, *command_line);
2221 switch(ice_map[linetoken2])
2225 if (check_float(linetoken3))
2226 token3 >> token_value;
2229 uiuc_warnings_errors(1, *command_line);
2232 iceTime = token_value;
2235 case transientTime_flag:
2237 if (check_float(linetoken3))
2238 token3 >> token_value;
2240 uiuc_warnings_errors(1, *command_line);
2242 transientTime = token_value;
2245 case eta_ice_final_flag:
2247 if (check_float(linetoken3))
2248 token3 >> token_value;
2250 uiuc_warnings_errors(1, *command_line);
2252 eta_ice_final = token_value;
2255 case beta_probe_wing_flag:
2257 if (check_float(linetoken3))
2258 token3 >> token_value;
2260 uiuc_warnings_errors(1, *command_line);
2263 x_probe_wing = token_value;
2266 case beta_probe_tail_flag:
2268 if (check_float(linetoken3))
2269 token3 >> token_value;
2271 uiuc_warnings_errors(1, *command_line);
2274 x_probe_tail = token_value;
2279 if (check_float(linetoken3))
2280 token3 >> token_value;
2282 uiuc_warnings_errors(1, *command_line);
2289 if (check_float(linetoken3))
2290 token3 >> token_value;
2292 uiuc_warnings_errors(1, *command_line);
2299 if (check_float(linetoken3))
2300 token3 >> token_value;
2302 uiuc_warnings_errors(1, *command_line);
2304 kCD_a = token_value;
2309 if (check_float(linetoken3))
2310 token3 >> token_value;
2312 uiuc_warnings_errors(1, *command_line);
2314 kCD_adot = token_value;
2319 if (check_float(linetoken3))
2320 token3 >> token_value;
2322 uiuc_warnings_errors(1, *command_line);
2324 kCD_q = token_value;
2329 if (check_float(linetoken3))
2330 token3 >> token_value;
2332 uiuc_warnings_errors(1, *command_line);
2334 kCD_de = token_value;
2339 if (check_float(linetoken3))
2340 token3 >> token_value;
2342 uiuc_warnings_errors(1, *command_line);
2349 if (check_float(linetoken3))
2350 token3 >> token_value;
2352 uiuc_warnings_errors(1, *command_line);
2359 if (check_float(linetoken3))
2360 token3 >> token_value;
2362 uiuc_warnings_errors(1, *command_line);
2364 kCX_a = token_value;
2369 if (check_float(linetoken3))
2370 token3 >> token_value;
2372 uiuc_warnings_errors(1, *command_line);
2374 kCX_a2 = token_value;
2379 if (check_float(linetoken3))
2380 token3 >> token_value;
2382 uiuc_warnings_errors(1, *command_line);
2384 kCX_a3 = token_value;
2389 if (check_float(linetoken3))
2390 token3 >> token_value;
2392 uiuc_warnings_errors(1, *command_line);
2394 kCX_adot = token_value;
2399 if (check_float(linetoken3))
2400 token3 >> token_value;
2402 uiuc_warnings_errors(1, *command_line);
2404 kCX_q = token_value;
2409 if (check_float(linetoken3))
2410 token3 >> token_value;
2412 uiuc_warnings_errors(1, *command_line);
2414 kCX_de = token_value;
2419 if (check_float(linetoken3))
2420 token3 >> token_value;
2422 uiuc_warnings_errors(1, *command_line);
2424 kCX_dr = token_value;
2429 if (check_float(linetoken3))
2430 token3 >> token_value;
2432 uiuc_warnings_errors(1, *command_line);
2434 kCX_df = token_value;
2439 if (check_float(linetoken3))
2440 token3 >> token_value;
2442 uiuc_warnings_errors(1, *command_line);
2444 kCX_adf = token_value;
2449 if (check_float(linetoken3))
2450 token3 >> token_value;
2452 uiuc_warnings_errors(1, *command_line);
2459 if (check_float(linetoken3))
2460 token3 >> token_value;
2462 uiuc_warnings_errors(1, *command_line);
2464 kCL_a = token_value;
2469 if (check_float(linetoken3))
2470 token3 >> token_value;
2472 uiuc_warnings_errors(1, *command_line);
2474 kCL_adot = token_value;
2479 if (check_float(linetoken3))
2480 token3 >> token_value;
2482 uiuc_warnings_errors(1, *command_line);
2484 kCL_q = token_value;
2489 if (check_float(linetoken3))
2490 token3 >> token_value;
2492 uiuc_warnings_errors(1, *command_line);
2494 kCL_de = token_value;
2499 if (check_float(linetoken3))
2500 token3 >> token_value;
2502 uiuc_warnings_errors(1, *command_line);
2509 if (check_float(linetoken3))
2510 token3 >> token_value;
2512 uiuc_warnings_errors(1, *command_line);
2514 kCZ_a = token_value;
2519 if (check_float(linetoken3))
2520 token3 >> token_value;
2522 uiuc_warnings_errors(1, *command_line);
2524 kCZ_a2 = token_value;
2529 if (check_float(linetoken3))
2530 token3 >> token_value;
2532 uiuc_warnings_errors(1, *command_line);
2534 kCZ_a3 = token_value;
2539 if (check_float(linetoken3))
2540 token3 >> token_value;
2542 uiuc_warnings_errors(1, *command_line);
2544 kCZ_adot = token_value;
2549 if (check_float(linetoken3))
2550 token3 >> token_value;
2552 uiuc_warnings_errors(1, *command_line);
2554 kCZ_q = token_value;
2559 if (check_float(linetoken3))
2560 token3 >> token_value;
2562 uiuc_warnings_errors(1, *command_line);
2564 kCZ_de = token_value;
2569 if (check_float(linetoken3))
2570 token3 >> token_value;
2572 uiuc_warnings_errors(1, *command_line);
2574 kCZ_deb2 = token_value;
2579 if (check_float(linetoken3))
2580 token3 >> token_value;
2582 uiuc_warnings_errors(1, *command_line);
2584 kCZ_df = token_value;
2589 if (check_float(linetoken3))
2590 token3 >> token_value;
2592 uiuc_warnings_errors(1, *command_line);
2594 kCZ_adf = token_value;
2599 if (check_float(linetoken3))
2600 token3 >> token_value;
2602 uiuc_warnings_errors(1, *command_line);
2609 if (check_float(linetoken3))
2610 token3 >> token_value;
2612 uiuc_warnings_errors(1, *command_line);
2614 kCm_a = token_value;
2619 if (check_float(linetoken3))
2620 token3 >> token_value;
2622 uiuc_warnings_errors(1, *command_line);
2624 kCm_a2 = token_value;
2629 if (check_float(linetoken3))
2630 token3 >> token_value;
2632 uiuc_warnings_errors(1, *command_line);
2634 kCm_adot = token_value;
2639 if (check_float(linetoken3))
2640 token3 >> token_value;
2642 uiuc_warnings_errors(1, *command_line);
2644 kCm_q = token_value;
2649 if (check_float(linetoken3))
2650 token3 >> token_value;
2652 uiuc_warnings_errors(1, *command_line);
2654 kCm_de = token_value;
2659 if (check_float(linetoken3))
2660 token3 >> token_value;
2662 uiuc_warnings_errors(1, *command_line);
2664 kCm_b2 = token_value;
2669 if (check_float(linetoken3))
2670 token3 >> token_value;
2672 uiuc_warnings_errors(1, *command_line);
2674 kCm_r = token_value;
2679 if (check_float(linetoken3))
2680 token3 >> token_value;
2682 uiuc_warnings_errors(1, *command_line);
2684 kCm_df = token_value;
2689 if (check_float(linetoken3))
2690 token3 >> token_value;
2692 uiuc_warnings_errors(1, *command_line);
2699 if (check_float(linetoken3))
2700 token3 >> token_value;
2702 uiuc_warnings_errors(1, *command_line);
2704 kCY_beta = token_value;
2709 if (check_float(linetoken3))
2710 token3 >> token_value;
2712 uiuc_warnings_errors(1, *command_line);
2714 kCY_p = token_value;
2719 if (check_float(linetoken3))
2720 token3 >> token_value;
2722 uiuc_warnings_errors(1, *command_line);
2724 kCY_r = token_value;
2729 if (check_float(linetoken3))
2730 token3 >> token_value;
2732 uiuc_warnings_errors(1, *command_line);
2734 kCY_da = token_value;
2739 if (check_float(linetoken3))
2740 token3 >> token_value;
2742 uiuc_warnings_errors(1, *command_line);
2744 kCY_dr = token_value;
2749 if (check_float(linetoken3))
2750 token3 >> token_value;
2752 uiuc_warnings_errors(1, *command_line);
2754 kCY_dra = token_value;
2759 if (check_float(linetoken3))
2760 token3 >> token_value;
2762 uiuc_warnings_errors(1, *command_line);
2764 kCY_bdot = token_value;
2769 if (check_float(linetoken3))
2770 token3 >> token_value;
2772 uiuc_warnings_errors(1, *command_line);
2779 if (check_float(linetoken3))
2780 token3 >> token_value;
2782 uiuc_warnings_errors(1, *command_line);
2784 kCl_beta = token_value;
2789 if (check_float(linetoken3))
2790 token3 >> token_value;
2792 uiuc_warnings_errors(1, *command_line);
2794 kCl_p = token_value;
2799 if (check_float(linetoken3))
2800 token3 >> token_value;
2802 uiuc_warnings_errors(1, *command_line);
2804 kCl_r = token_value;
2809 if (check_float(linetoken3))
2810 token3 >> token_value;
2812 uiuc_warnings_errors(1, *command_line);
2814 kCl_da = token_value;
2819 if (check_float(linetoken3))
2820 token3 >> token_value;
2822 uiuc_warnings_errors(1, *command_line);
2824 kCl_dr = token_value;
2829 if (check_float(linetoken3))
2830 token3 >> token_value;
2832 uiuc_warnings_errors(1, *command_line);
2834 kCl_daa = token_value;
2839 if (check_float(linetoken3))
2840 token3 >> token_value;
2842 uiuc_warnings_errors(1, *command_line);
2849 if (check_float(linetoken3))
2850 token3 >> token_value;
2852 uiuc_warnings_errors(1, *command_line);
2854 kCn_beta = token_value;
2859 if (check_float(linetoken3))
2860 token3 >> token_value;
2862 uiuc_warnings_errors(1, *command_line);
2864 kCn_p = token_value;
2869 if (check_float(linetoken3))
2870 token3 >> token_value;
2872 uiuc_warnings_errors(1, *command_line);
2874 kCn_r = token_value;
2879 if (check_float(linetoken3))
2880 token3 >> token_value;
2882 uiuc_warnings_errors(1, *command_line);
2884 kCn_da = token_value;
2889 if (check_float(linetoken3))
2890 token3 >> token_value;
2892 uiuc_warnings_errors(1, *command_line);
2894 kCn_dr = token_value;
2899 if (check_float(linetoken3))
2900 token3 >> token_value;
2902 uiuc_warnings_errors(1, *command_line);
2904 kCn_q = token_value;
2909 if (check_float(linetoken3))
2910 token3 >> token_value;
2912 uiuc_warnings_errors(1, *command_line);
2914 kCn_b3 = token_value;
2919 uiuc_warnings_errors(2, *command_line);
2929 static int fout_flag=0;
2933 fout.open("uiuc_record.dat");
2935 switch(record_map[linetoken2])
2937 /************************* Time ************************/
2938 case Simtime_record:
2940 recordParts -> storeCommands (*command_line);
2945 recordParts -> storeCommands (*command_line);
2949 /************************* Mass ************************/
2952 recordParts -> storeCommands (*command_line);
2957 recordParts -> storeCommands (*command_line);
2962 recordParts -> storeCommands (*command_line);
2967 recordParts -> storeCommands (*command_line);
2972 recordParts -> storeCommands (*command_line);
2977 recordParts -> storeCommands (*command_line);
2981 /*********************** Geometry **********************/
2982 case Dx_pilot_record:
2984 recordParts -> storeCommands (*command_line);
2987 case Dy_pilot_record:
2989 recordParts -> storeCommands (*command_line);
2992 case Dz_pilot_record:
2994 recordParts -> storeCommands (*command_line);
2999 recordParts -> storeCommands (*command_line);
3004 recordParts -> storeCommands (*command_line);
3009 recordParts -> storeCommands (*command_line);
3013 /********************** Positions **********************/
3014 case Lat_geocentric_record:
3016 recordParts -> storeCommands (*command_line);
3019 case Lon_geocentric_record:
3021 recordParts -> storeCommands (*command_line);
3024 case Radius_to_vehicle_record:
3026 recordParts -> storeCommands (*command_line);
3029 case Latitude_record:
3031 recordParts -> storeCommands (*command_line);
3034 case Longitude_record:
3036 recordParts -> storeCommands (*command_line);
3039 case Altitude_record:
3041 recordParts -> storeCommands (*command_line);
3046 recordParts -> storeCommands (*command_line);
3051 recordParts -> storeCommands (*command_line);
3056 recordParts -> storeCommands (*command_line);
3060 /******************** Accelerations ********************/
3061 case V_dot_north_record:
3063 recordParts -> storeCommands (*command_line);
3066 case V_dot_east_record:
3068 recordParts -> storeCommands (*command_line);
3071 case V_dot_down_record:
3073 recordParts -> storeCommands (*command_line);
3076 case U_dot_body_record:
3078 recordParts -> storeCommands (*command_line);
3081 case V_dot_body_record:
3083 recordParts -> storeCommands (*command_line);
3086 case W_dot_body_record:
3088 recordParts -> storeCommands (*command_line);
3091 case A_X_pilot_record:
3093 recordParts -> storeCommands (*command_line);
3096 case A_Y_pilot_record:
3098 recordParts -> storeCommands (*command_line);
3101 case A_Z_pilot_record:
3103 recordParts -> storeCommands (*command_line);
3108 recordParts -> storeCommands (*command_line);
3113 recordParts -> storeCommands (*command_line);
3118 recordParts -> storeCommands (*command_line);
3121 case N_X_pilot_record:
3123 recordParts -> storeCommands (*command_line);
3126 case N_Y_pilot_record:
3128 recordParts -> storeCommands (*command_line);
3131 case N_Z_pilot_record:
3133 recordParts -> storeCommands (*command_line);
3138 recordParts -> storeCommands (*command_line);
3143 recordParts -> storeCommands (*command_line);
3148 recordParts -> storeCommands (*command_line);
3151 case P_dot_body_record:
3153 recordParts -> storeCommands (*command_line);
3156 case Q_dot_body_record:
3158 recordParts -> storeCommands (*command_line);
3161 case R_dot_body_record:
3163 recordParts -> storeCommands (*command_line);
3167 /********************** Velocities *********************/
3168 case V_north_record:
3170 recordParts -> storeCommands (*command_line);
3175 recordParts -> storeCommands (*command_line);
3180 recordParts -> storeCommands (*command_line);
3183 case V_north_rel_ground_record:
3185 recordParts -> storeCommands (*command_line);
3188 case V_east_rel_ground_record:
3190 recordParts -> storeCommands (*command_line);
3193 case V_down_rel_ground_record:
3195 recordParts -> storeCommands (*command_line);
3198 case V_north_airmass_record:
3200 recordParts -> storeCommands (*command_line);
3203 case V_east_airmass_record:
3205 recordParts -> storeCommands (*command_line);
3208 case V_down_airmass_record:
3210 recordParts -> storeCommands (*command_line);
3213 case V_north_rel_airmass_record:
3215 recordParts -> storeCommands (*command_line);
3218 case V_east_rel_airmass_record:
3220 recordParts -> storeCommands (*command_line);
3223 case V_down_rel_airmass_record:
3225 recordParts -> storeCommands (*command_line);
3230 recordParts -> storeCommands (*command_line);
3235 recordParts -> storeCommands (*command_line);
3240 recordParts -> storeCommands (*command_line);
3245 recordParts -> storeCommands (*command_line);
3250 recordParts -> storeCommands (*command_line);
3255 recordParts -> storeCommands (*command_line);
3258 case V_rel_wind_record:
3260 recordParts -> storeCommands (*command_line);
3263 case V_true_kts_record:
3265 recordParts -> storeCommands (*command_line);
3268 case V_rel_ground_record:
3270 recordParts -> storeCommands (*command_line);
3273 case V_inertial_record:
3275 recordParts -> storeCommands (*command_line);
3278 case V_ground_speed_record:
3280 recordParts -> storeCommands (*command_line);
3283 case V_equiv_record:
3285 recordParts -> storeCommands (*command_line);
3288 case V_equiv_kts_record:
3290 recordParts -> storeCommands (*command_line);
3293 case V_calibrated_record:
3295 recordParts -> storeCommands (*command_line);
3298 case V_calibrated_kts_record:
3300 recordParts -> storeCommands (*command_line);
3303 case P_local_record:
3305 recordParts -> storeCommands (*command_line);
3308 case Q_local_record:
3310 recordParts -> storeCommands (*command_line);
3313 case R_local_record:
3315 recordParts -> storeCommands (*command_line);
3320 recordParts -> storeCommands (*command_line);
3325 recordParts -> storeCommands (*command_line);
3330 recordParts -> storeCommands (*command_line);
3333 case P_total_record:
3335 recordParts -> storeCommands (*command_line);
3338 case Q_total_record:
3340 recordParts -> storeCommands (*command_line);
3343 case R_total_record:
3345 recordParts -> storeCommands (*command_line);
3348 case Phi_dot_record:
3350 recordParts -> storeCommands (*command_line);
3353 case Theta_dot_record:
3355 recordParts -> storeCommands (*command_line);
3358 case Psi_dot_record:
3360 recordParts -> storeCommands (*command_line);
3363 case Latitude_dot_record:
3365 recordParts -> storeCommands (*command_line);
3368 case Longitude_dot_record:
3370 recordParts -> storeCommands (*command_line);
3373 case Radius_dot_record:
3375 recordParts -> storeCommands (*command_line);
3379 /************************ Angles ***********************/
3382 recordParts -> storeCommands (*command_line);
3385 case Alpha_deg_record:
3387 recordParts -> storeCommands (*command_line);
3390 case Alpha_dot_record:
3392 recordParts -> storeCommands (*command_line);
3395 case Alpha_dot_deg_record:
3397 recordParts -> storeCommands (*command_line);
3402 recordParts -> storeCommands (*command_line);
3405 case Beta_deg_record:
3407 recordParts -> storeCommands (*command_line);
3410 case Beta_dot_record:
3412 recordParts -> storeCommands (*command_line);
3415 case Beta_dot_deg_record:
3417 recordParts -> storeCommands (*command_line);
3420 case Gamma_vert_record:
3422 recordParts -> storeCommands (*command_line);
3425 case Gamma_vert_deg_record:
3427 recordParts -> storeCommands (*command_line);
3430 case Gamma_horiz_record:
3432 recordParts -> storeCommands (*command_line);
3435 case Gamma_horiz_deg_record:
3437 recordParts -> storeCommands (*command_line);
3441 /**************** Atmospheric Properties ***************/
3442 case Density_record:
3444 recordParts -> storeCommands (*command_line);
3447 case V_sound_record:
3449 recordParts -> storeCommands (*command_line);
3452 case Mach_number_record:
3454 recordParts -> storeCommands (*command_line);
3457 case Static_pressure_record:
3459 recordParts -> storeCommands (*command_line);
3462 case Total_pressure_record:
3464 recordParts -> storeCommands (*command_line);
3467 case Impact_pressure_record:
3469 recordParts -> storeCommands (*command_line);
3472 case Dynamic_pressure_record:
3474 recordParts -> storeCommands (*command_line);
3477 case Static_temperature_record:
3479 recordParts -> storeCommands (*command_line);
3482 case Total_temperature_record:
3484 recordParts -> storeCommands (*command_line);
3488 /******************** Earth Properties *****************/
3489 case Gravity_record:
3491 recordParts -> storeCommands (*command_line);
3494 case Sea_level_radius_record:
3496 recordParts -> storeCommands (*command_line);
3499 case Earth_position_angle_record:
3501 recordParts -> storeCommands (*command_line);
3504 case Runway_altitude_record:
3506 recordParts -> storeCommands (*command_line);
3509 case Runway_latitude_record:
3511 recordParts -> storeCommands (*command_line);
3514 case Runway_longitude_record:
3516 recordParts -> storeCommands (*command_line);
3519 case Runway_heading_record:
3521 recordParts -> storeCommands (*command_line);
3524 case Radius_to_rwy_record:
3526 recordParts -> storeCommands (*command_line);
3529 case D_pilot_north_of_rwy_record:
3531 recordParts -> storeCommands (*command_line);
3534 case D_pilot_east_of_rwy_record:
3536 recordParts -> storeCommands (*command_line);
3539 case D_pilot_above_rwy_record:
3541 recordParts -> storeCommands (*command_line);
3544 case X_pilot_rwy_record:
3546 recordParts -> storeCommands (*command_line);
3549 case Y_pilot_rwy_record:
3551 recordParts -> storeCommands (*command_line);
3554 case H_pilot_rwy_record:
3556 recordParts -> storeCommands (*command_line);
3559 case D_cg_north_of_rwy_record:
3561 recordParts -> storeCommands (*command_line);
3564 case D_cg_east_of_rwy_record:
3566 recordParts -> storeCommands (*command_line);
3569 case D_cg_above_rwy_record:
3571 recordParts -> storeCommands (*command_line);
3574 case X_cg_rwy_record:
3576 recordParts -> storeCommands (*command_line);
3579 case Y_cg_rwy_record:
3581 recordParts -> storeCommands (*command_line);
3584 case H_cg_rwy_record:
3586 recordParts -> storeCommands (*command_line);
3590 /********************* Engine Inputs *******************/
3591 case Throttle_pct_record:
3593 recordParts -> storeCommands (*command_line);
3596 case Throttle_3_record:
3598 recordParts -> storeCommands (*command_line);
3602 /******************** Control Inputs *******************/
3603 case Long_control_record:
3605 recordParts -> storeCommands (*command_line);
3608 case Long_trim_record:
3610 recordParts -> storeCommands (*command_line);
3613 case Long_trim_deg_record:
3615 recordParts -> storeCommands (*command_line);
3618 case elevator_record:
3620 recordParts -> storeCommands (*command_line);
3623 case elevator_deg_record:
3625 recordParts -> storeCommands (*command_line);
3628 case Lat_control_record:
3630 recordParts -> storeCommands (*command_line);
3633 case aileron_record:
3635 recordParts -> storeCommands (*command_line);
3638 case aileron_deg_record:
3640 recordParts -> storeCommands (*command_line);
3643 case Rudder_pedal_record:
3645 recordParts -> storeCommands (*command_line);
3650 recordParts -> storeCommands (*command_line);
3653 case rudder_deg_record:
3655 recordParts -> storeCommands (*command_line);
3658 case Flap_handle_record:
3660 recordParts -> storeCommands (*command_line);
3665 recordParts -> storeCommands (*command_line);
3668 case flap_deg_record:
3670 recordParts -> storeCommands (*command_line);
3674 /****************** Aero Coefficients ******************/
3677 recordParts -> storeCommands (*command_line);
3682 recordParts -> storeCommands (*command_line);
3685 case CDfadeI_record:
3687 recordParts -> storeCommands (*command_line);
3692 recordParts -> storeCommands (*command_line);
3695 case CDfadfI_record:
3697 recordParts -> storeCommands (*command_line);
3702 recordParts -> storeCommands (*command_line);
3707 recordParts -> storeCommands (*command_line);
3712 recordParts -> storeCommands (*command_line);
3715 case CLfadeI_record:
3717 recordParts -> storeCommands (*command_line);
3722 recordParts -> storeCommands (*command_line);
3725 case CLfadfI_record:
3727 recordParts -> storeCommands (*command_line);
3732 recordParts -> storeCommands (*command_line);
3737 recordParts -> storeCommands (*command_line);
3742 recordParts -> storeCommands (*command_line);
3745 case CmfadeI_record:
3747 recordParts -> storeCommands (*command_line);
3752 recordParts -> storeCommands (*command_line);
3755 case CmfadfI_record:
3757 recordParts -> storeCommands (*command_line);
3762 recordParts -> storeCommands (*command_line);
3765 case CYfadaI_record:
3767 recordParts -> storeCommands (*command_line);
3770 case CYfbetadrI_record:
3772 recordParts -> storeCommands (*command_line);
3777 recordParts -> storeCommands (*command_line);
3780 case ClfadaI_record:
3782 recordParts -> storeCommands (*command_line);
3785 case ClfbetadrI_record:
3787 recordParts -> storeCommands (*command_line);
3792 recordParts -> storeCommands (*command_line);
3795 case CnfadaI_record:
3797 recordParts -> storeCommands (*command_line);
3800 case CnfbetadrI_record:
3802 recordParts -> storeCommands (*command_line);
3806 /******************** Ice Detection ********************/
3807 case CLclean_wing_record:
3809 recordParts -> storeCommands (*command_line);
3812 case CLiced_wing_record:
3814 recordParts -> storeCommands (*command_line);
3817 case CLclean_tail_record:
3819 recordParts -> storeCommands (*command_line);
3822 case CLiced_tail_record:
3824 recordParts -> storeCommands (*command_line);
3827 case Lift_clean_wing_record:
3829 recordParts -> storeCommands (*command_line);
3832 case Lift_iced_wing_record:
3834 recordParts -> storeCommands (*command_line);
3837 case Lift_clean_tail_record:
3839 recordParts -> storeCommands (*command_line);
3842 case Lift_iced_tail_record:
3844 recordParts -> storeCommands (*command_line);
3847 case Gamma_clean_wing_record:
3849 recordParts -> storeCommands (*command_line);
3852 case Gamma_iced_wing_record:
3854 recordParts -> storeCommands (*command_line);
3857 case Gamma_clean_tail_record:
3859 recordParts -> storeCommands (*command_line);
3862 case Gamma_iced_tail_record:
3864 recordParts -> storeCommands (*command_line);
3867 case w_clean_wing_record:
3869 recordParts -> storeCommands (*command_line);
3872 case w_iced_wing_record:
3874 recordParts -> storeCommands (*command_line);
3877 case w_clean_tail_record:
3879 recordParts -> storeCommands (*command_line);
3882 case w_iced_tail_record:
3884 recordParts -> storeCommands (*command_line);
3887 case V_total_clean_wing_record:
3889 recordParts -> storeCommands (*command_line);
3892 case V_total_iced_wing_record:
3894 recordParts -> storeCommands (*command_line);
3897 case V_total_clean_tail_record:
3899 recordParts -> storeCommands (*command_line);
3902 case V_total_iced_tail_record:
3904 recordParts -> storeCommands (*command_line);
3907 case beta_flow_clean_wing_record:
3909 recordParts -> storeCommands (*command_line);
3912 case beta_flow_clean_wing_deg_record:
3914 recordParts -> storeCommands (*command_line);
3917 case beta_flow_iced_wing_record:
3919 recordParts -> storeCommands (*command_line);
3922 case beta_flow_iced_wing_deg_record:
3924 recordParts -> storeCommands (*command_line);
3927 case beta_flow_clean_tail_record:
3929 recordParts -> storeCommands (*command_line);
3932 case beta_flow_clean_tail_deg_record:
3934 recordParts -> storeCommands (*command_line);
3937 case beta_flow_iced_tail_record:
3939 recordParts -> storeCommands (*command_line);
3942 case beta_flow_iced_tail_deg_record:
3944 recordParts -> storeCommands (*command_line);
3947 case Dbeta_flow_wing_record:
3949 recordParts -> storeCommands (*command_line);
3952 case Dbeta_flow_wing_deg_record:
3954 recordParts -> storeCommands (*command_line);
3957 case Dbeta_flow_tail_record:
3959 recordParts -> storeCommands (*command_line);
3962 case Dbeta_flow_tail_deg_record:
3964 recordParts -> storeCommands (*command_line);
3967 case pct_beta_flow_wing_record:
3969 recordParts -> storeCommands (*command_line);
3972 case pct_beta_flow_tail_record:
3974 recordParts -> storeCommands (*command_line);
3978 /************************ Forces ***********************/
3979 case F_X_wind_record:
3981 recordParts -> storeCommands (*command_line);
3984 case F_Y_wind_record:
3986 recordParts -> storeCommands (*command_line);
3989 case F_Z_wind_record:
3991 recordParts -> storeCommands (*command_line);
3994 case F_X_aero_record:
3996 recordParts -> storeCommands (*command_line);
3999 case F_Y_aero_record:
4001 recordParts -> storeCommands (*command_line);
4004 case F_Z_aero_record:
4006 recordParts -> storeCommands (*command_line);
4009 case F_X_engine_record:
4011 recordParts -> storeCommands (*command_line);
4014 case F_Y_engine_record:
4016 recordParts -> storeCommands (*command_line);
4019 case F_Z_engine_record:
4021 recordParts -> storeCommands (*command_line);
4024 case F_X_gear_record:
4026 recordParts -> storeCommands (*command_line);
4029 case F_Y_gear_record:
4031 recordParts -> storeCommands (*command_line);
4034 case F_Z_gear_record:
4036 recordParts -> storeCommands (*command_line);
4041 recordParts -> storeCommands (*command_line);
4046 recordParts -> storeCommands (*command_line);
4051 recordParts -> storeCommands (*command_line);
4054 case F_north_record:
4056 recordParts -> storeCommands (*command_line);
4061 recordParts -> storeCommands (*command_line);
4066 recordParts -> storeCommands (*command_line);
4070 /*********************** Moments ***********************/
4071 case M_l_aero_record:
4073 recordParts -> storeCommands (*command_line);
4076 case M_m_aero_record:
4078 recordParts -> storeCommands (*command_line);
4081 case M_n_aero_record:
4083 recordParts -> storeCommands (*command_line);
4086 case M_l_engine_record:
4088 recordParts -> storeCommands (*command_line);
4091 case M_m_engine_record:
4093 recordParts -> storeCommands (*command_line);
4096 case M_n_engine_record:
4098 recordParts -> storeCommands (*command_line);
4101 case M_l_gear_record:
4103 recordParts -> storeCommands (*command_line);
4106 case M_m_gear_record:
4108 recordParts -> storeCommands (*command_line);
4111 case M_n_gear_record:
4113 recordParts -> storeCommands (*command_line);
4118 recordParts -> storeCommands (*command_line);
4123 recordParts -> storeCommands (*command_line);
4128 recordParts -> storeCommands (*command_line);
4133 uiuc_warnings_errors(2, *command_line);
4143 switch(misc_map[linetoken2])
4145 case simpleHingeMomentCoef_flag:
4147 if (check_float(linetoken3))
4148 token3 >> token_value;
4150 uiuc_warnings_errors(1, *command_line);
4152 simpleHingeMomentCoef = token_value;
4155 case dfTimefdf_flag:
4157 dfTimefdf = linetoken3;
4158 /* call 1D File Reader with file name (dfTimefdf);
4159 function returns array of dfs (dfArray) and
4160 corresponding time values (TimeArray) and max
4161 number of terms in arrays (ndf) */
4162 uiuc_1DdataFileReader(dfTimefdf,
4164 dfTimefdf_TimeArray,
4170 uiuc_warnings_errors(2, *command_line);
4180 if (linetoken1=="*")
4182 uiuc_warnings_errors(2, *command_line);
4186 } // end keyword map