1 /**********************************************************************
3 FILENAME: uiuc_menu_ice.cpp
5 ----------------------------------------------------------------------
7 DESCRIPTION: reads input data 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: 04/04/2003 initial release
21 06/30/2003 (RD) replaced istrstream with istringstream
22 to get rid of the annoying warning about
23 using the strstream header
25 ----------------------------------------------------------------------
27 AUTHOR(S): Robert Deters <rdeters@uiuc.edu>
28 Michael Selig <m-selig@uiuc.edu>
30 ----------------------------------------------------------------------
34 ----------------------------------------------------------------------
38 ----------------------------------------------------------------------
42 ----------------------------------------------------------------------
44 CALLED BY: uiuc_menu()
46 ----------------------------------------------------------------------
48 CALLS TO: check_float() if needed
54 ----------------------------------------------------------------------
56 COPYRIGHT: (C) 2003 by Michael Selig
58 This program is free software; you can redistribute it and/or
59 modify it under the terms of the GNU General Public License
60 as published by the Free Software Foundation.
62 This program is distributed in the hope that it will be useful,
63 but WITHOUT ANY WARRANTY; without even the implied warranty of
64 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
65 GNU General Public License for more details.
67 You should have received a copy of the GNU General Public License
68 along with this program; if not, write to the Free Software
69 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
71 **********************************************************************/
73 #include <simgear/compiler.h>
75 #if defined( __MWERKS__ )
76 // -dw- optimizer chokes (big-time) trying to optimize humongous
77 // loop/switch statements
78 #pragma optimization_level 0
85 #include "uiuc_menu_ice.h"
95 void parse_ice( const string& linetoken2, const string& linetoken3,
96 const string& linetoken4, const string& linetoken5,
97 const string& linetoken6, const string& linetoken7,
98 const string& linetoken8, const string& linetoken9,
99 const string& linetoken10, const string& aircraft_directory,
100 LIST command_line ) {
102 int token_value_convert1, token_value_convert2, token_value_convert3;
103 int token_value_convert4;
104 double datafile_xArray[100][100], datafile_yArray[100];
105 double datafile_zArray[100][100];
107 int datafile_nxArray[100], datafile_ny;
108 istringstream token3(linetoken3.c_str());
109 istringstream token4(linetoken4.c_str());
110 istringstream token5(linetoken5.c_str());
111 istringstream token6(linetoken6.c_str());
112 istringstream token7(linetoken7.c_str());
113 istringstream token8(linetoken8.c_str());
114 istringstream token9(linetoken9.c_str());
115 istringstream token10(linetoken10.c_str());
117 static bool tactilefadef_first = true;
119 switch(ice_map[linetoken2])
123 if (check_float(linetoken3))
124 token3 >> token_value;
127 uiuc_warnings_errors(1, *command_line);
130 iceTime = token_value;
133 case transientTime_flag:
135 if (check_float(linetoken3))
136 token3 >> token_value;
138 uiuc_warnings_errors(1, *command_line);
140 transientTime = token_value;
143 case eta_ice_final_flag:
145 if (check_float(linetoken3))
146 token3 >> token_value;
148 uiuc_warnings_errors(1, *command_line);
150 eta_ice_final = token_value;
153 case beta_probe_wing_flag:
155 if (check_float(linetoken3))
156 token3 >> token_value;
158 uiuc_warnings_errors(1, *command_line);
161 x_probe_wing = token_value;
164 case beta_probe_tail_flag:
166 if (check_float(linetoken3))
167 token3 >> token_value;
169 uiuc_warnings_errors(1, *command_line);
172 x_probe_tail = token_value;
177 if (check_float(linetoken3))
178 token3 >> token_value;
180 uiuc_warnings_errors(1, *command_line);
187 if (check_float(linetoken3))
188 token3 >> token_value;
190 uiuc_warnings_errors(1, *command_line);
197 if (check_float(linetoken3))
198 token3 >> token_value;
200 uiuc_warnings_errors(1, *command_line);
207 if (check_float(linetoken3))
208 token3 >> token_value;
210 uiuc_warnings_errors(1, *command_line);
212 kCD_adot = token_value;
217 if (check_float(linetoken3))
218 token3 >> token_value;
220 uiuc_warnings_errors(1, *command_line);
227 if (check_float(linetoken3))
228 token3 >> token_value;
230 uiuc_warnings_errors(1, *command_line);
232 kCD_de = token_value;
237 if (check_float(linetoken3))
238 token3 >> token_value;
240 uiuc_warnings_errors(1, *command_line);
247 if (check_float(linetoken3))
248 token3 >> token_value;
250 uiuc_warnings_errors(1, *command_line);
257 if (check_float(linetoken3))
258 token3 >> token_value;
260 uiuc_warnings_errors(1, *command_line);
267 if (check_float(linetoken3))
268 token3 >> token_value;
270 uiuc_warnings_errors(1, *command_line);
272 kCX_a2 = token_value;
277 if (check_float(linetoken3))
278 token3 >> token_value;
280 uiuc_warnings_errors(1, *command_line);
282 kCX_a3 = token_value;
287 if (check_float(linetoken3))
288 token3 >> token_value;
290 uiuc_warnings_errors(1, *command_line);
292 kCX_adot = token_value;
297 if (check_float(linetoken3))
298 token3 >> token_value;
300 uiuc_warnings_errors(1, *command_line);
307 if (check_float(linetoken3))
308 token3 >> token_value;
310 uiuc_warnings_errors(1, *command_line);
312 kCX_de = token_value;
317 if (check_float(linetoken3))
318 token3 >> token_value;
320 uiuc_warnings_errors(1, *command_line);
322 kCX_dr = token_value;
327 if (check_float(linetoken3))
328 token3 >> token_value;
330 uiuc_warnings_errors(1, *command_line);
332 kCX_df = token_value;
337 if (check_float(linetoken3))
338 token3 >> token_value;
340 uiuc_warnings_errors(1, *command_line);
342 kCX_adf = token_value;
347 if (check_float(linetoken3))
348 token3 >> token_value;
350 uiuc_warnings_errors(1, *command_line);
357 if (check_float(linetoken3))
358 token3 >> token_value;
360 uiuc_warnings_errors(1, *command_line);
367 if (check_float(linetoken3))
368 token3 >> token_value;
370 uiuc_warnings_errors(1, *command_line);
372 kCL_adot = token_value;
377 if (check_float(linetoken3))
378 token3 >> token_value;
380 uiuc_warnings_errors(1, *command_line);
387 if (check_float(linetoken3))
388 token3 >> token_value;
390 uiuc_warnings_errors(1, *command_line);
392 kCL_de = token_value;
397 if (check_float(linetoken3))
398 token3 >> token_value;
400 uiuc_warnings_errors(1, *command_line);
407 if (check_float(linetoken3))
408 token3 >> token_value;
410 uiuc_warnings_errors(1, *command_line);
417 if (check_float(linetoken3))
418 token3 >> token_value;
420 uiuc_warnings_errors(1, *command_line);
422 kCZ_a2 = token_value;
427 if (check_float(linetoken3))
428 token3 >> token_value;
430 uiuc_warnings_errors(1, *command_line);
432 kCZ_a3 = token_value;
437 if (check_float(linetoken3))
438 token3 >> token_value;
440 uiuc_warnings_errors(1, *command_line);
442 kCZ_adot = token_value;
447 if (check_float(linetoken3))
448 token3 >> token_value;
450 uiuc_warnings_errors(1, *command_line);
457 if (check_float(linetoken3))
458 token3 >> token_value;
460 uiuc_warnings_errors(1, *command_line);
462 kCZ_de = token_value;
467 if (check_float(linetoken3))
468 token3 >> token_value;
470 uiuc_warnings_errors(1, *command_line);
472 kCZ_deb2 = token_value;
477 if (check_float(linetoken3))
478 token3 >> token_value;
480 uiuc_warnings_errors(1, *command_line);
482 kCZ_df = token_value;
487 if (check_float(linetoken3))
488 token3 >> token_value;
490 uiuc_warnings_errors(1, *command_line);
492 kCZ_adf = token_value;
497 if (check_float(linetoken3))
498 token3 >> token_value;
500 uiuc_warnings_errors(1, *command_line);
507 if (check_float(linetoken3))
508 token3 >> token_value;
510 uiuc_warnings_errors(1, *command_line);
517 if (check_float(linetoken3))
518 token3 >> token_value;
520 uiuc_warnings_errors(1, *command_line);
522 kCm_a2 = token_value;
527 if (check_float(linetoken3))
528 token3 >> token_value;
530 uiuc_warnings_errors(1, *command_line);
532 kCm_adot = token_value;
537 if (check_float(linetoken3))
538 token3 >> token_value;
540 uiuc_warnings_errors(1, *command_line);
547 if (check_float(linetoken3))
548 token3 >> token_value;
550 uiuc_warnings_errors(1, *command_line);
552 kCm_de = token_value;
557 if (check_float(linetoken3))
558 token3 >> token_value;
560 uiuc_warnings_errors(1, *command_line);
562 kCm_b2 = token_value;
567 if (check_float(linetoken3))
568 token3 >> token_value;
570 uiuc_warnings_errors(1, *command_line);
577 if (check_float(linetoken3))
578 token3 >> token_value;
580 uiuc_warnings_errors(1, *command_line);
582 kCm_df = token_value;
587 if (check_float(linetoken3))
588 token3 >> token_value;
590 uiuc_warnings_errors(1, *command_line);
597 if (check_float(linetoken3))
598 token3 >> token_value;
600 uiuc_warnings_errors(1, *command_line);
602 kCY_beta = token_value;
607 if (check_float(linetoken3))
608 token3 >> token_value;
610 uiuc_warnings_errors(1, *command_line);
617 if (check_float(linetoken3))
618 token3 >> token_value;
620 uiuc_warnings_errors(1, *command_line);
627 if (check_float(linetoken3))
628 token3 >> token_value;
630 uiuc_warnings_errors(1, *command_line);
632 kCY_da = token_value;
637 if (check_float(linetoken3))
638 token3 >> token_value;
640 uiuc_warnings_errors(1, *command_line);
642 kCY_dr = token_value;
647 if (check_float(linetoken3))
648 token3 >> token_value;
650 uiuc_warnings_errors(1, *command_line);
652 kCY_dra = token_value;
657 if (check_float(linetoken3))
658 token3 >> token_value;
660 uiuc_warnings_errors(1, *command_line);
662 kCY_bdot = token_value;
667 if (check_float(linetoken3))
668 token3 >> token_value;
670 uiuc_warnings_errors(1, *command_line);
677 if (check_float(linetoken3))
678 token3 >> token_value;
680 uiuc_warnings_errors(1, *command_line);
682 kCl_beta = token_value;
687 if (check_float(linetoken3))
688 token3 >> token_value;
690 uiuc_warnings_errors(1, *command_line);
697 if (check_float(linetoken3))
698 token3 >> token_value;
700 uiuc_warnings_errors(1, *command_line);
707 if (check_float(linetoken3))
708 token3 >> token_value;
710 uiuc_warnings_errors(1, *command_line);
712 kCl_da = token_value;
717 if (check_float(linetoken3))
718 token3 >> token_value;
720 uiuc_warnings_errors(1, *command_line);
722 kCl_dr = token_value;
727 if (check_float(linetoken3))
728 token3 >> token_value;
730 uiuc_warnings_errors(1, *command_line);
732 kCl_daa = token_value;
737 if (check_float(linetoken3))
738 token3 >> token_value;
740 uiuc_warnings_errors(1, *command_line);
747 if (check_float(linetoken3))
748 token3 >> token_value;
750 uiuc_warnings_errors(1, *command_line);
752 kCn_beta = token_value;
757 if (check_float(linetoken3))
758 token3 >> token_value;
760 uiuc_warnings_errors(1, *command_line);
767 if (check_float(linetoken3))
768 token3 >> token_value;
770 uiuc_warnings_errors(1, *command_line);
777 if (check_float(linetoken3))
778 token3 >> token_value;
780 uiuc_warnings_errors(1, *command_line);
782 kCn_da = token_value;
787 if (check_float(linetoken3))
788 token3 >> token_value;
790 uiuc_warnings_errors(1, *command_line);
792 kCn_dr = token_value;
797 if (check_float(linetoken3))
798 token3 >> token_value;
800 uiuc_warnings_errors(1, *command_line);
807 if (check_float(linetoken3))
808 token3 >> token_value;
810 uiuc_warnings_errors(1, *command_line);
812 kCn_b3 = token_value;
818 if (check_float(linetoken4))
819 token4 >> token_value;
821 uiuc_warnings_errors(1, *command_line);
823 if (index < 0 || index >= 20)
824 uiuc_warnings_errors(1, *command_line);
825 bootTime[index] = token_value;
826 bootTrue[index] = true;
829 case eta_wing_left_input_flag:
831 eta_from_file = true;
832 eta_wing_left_input = true;
833 eta_wing_left_input_file = aircraft_directory + linetoken3;
834 token4 >> token_value_convert1;
835 token5 >> token_value_convert2;
836 convert_y = uiuc_convert(token_value_convert1);
837 convert_x = uiuc_convert(token_value_convert2);
838 uiuc_1DdataFileReader(eta_wing_left_input_file,
839 eta_wing_left_input_timeArray,
840 eta_wing_left_input_daArray,
841 eta_wing_left_input_ntime);
842 token6 >> token_value;
843 eta_wing_left_input_startTime = token_value;
846 case eta_wing_right_input_flag:
848 eta_from_file = true;
849 eta_wing_right_input = true;
850 eta_wing_right_input_file = aircraft_directory + linetoken3;
851 token4 >> token_value_convert1;
852 token5 >> token_value_convert2;
853 convert_y = uiuc_convert(token_value_convert1);
854 convert_x = uiuc_convert(token_value_convert2);
855 uiuc_1DdataFileReader(eta_wing_right_input_file,
856 eta_wing_right_input_timeArray,
857 eta_wing_right_input_daArray,
858 eta_wing_right_input_ntime);
859 token6 >> token_value;
860 eta_wing_right_input_startTime = token_value;
863 case eta_tail_input_flag:
865 eta_from_file = true;
866 eta_tail_input = true;
867 eta_tail_input_file = aircraft_directory + linetoken3;
868 token4 >> token_value_convert1;
869 token5 >> token_value_convert2;
870 convert_y = uiuc_convert(token_value_convert1);
871 convert_x = uiuc_convert(token_value_convert2);
872 uiuc_1DdataFileReader(eta_tail_input_file,
873 eta_tail_input_timeArray,
874 eta_tail_input_daArray,
875 eta_tail_input_ntime);
876 token6 >> token_value;
877 eta_tail_input_startTime = token_value;
880 case nonlin_ice_case_flag:
882 token3 >> nonlin_ice_case;
887 if (check_float(linetoken3))
888 token3 >> token_value;
890 uiuc_warnings_errors(1, *command_line);
892 eta_tail = token_value;
895 case eta_wing_left_flag:
897 if (check_float(linetoken3))
898 token3 >> token_value;
900 uiuc_warnings_errors(1, *command_line);
902 eta_wing_left = token_value;
905 case eta_wing_right_flag:
907 if (check_float(linetoken3))
908 token3 >> token_value;
910 uiuc_warnings_errors(1, *command_line);
912 eta_wing_right = token_value;
915 case demo_eps_alpha_max_flag:
917 demo_eps_alpha_max = true;
918 demo_eps_alpha_max_file = aircraft_directory + linetoken3;
919 token4 >> token_value_convert1;
920 token5 >> token_value_convert2;
921 convert_y = uiuc_convert(token_value_convert1);
922 convert_x = uiuc_convert(token_value_convert2);
923 uiuc_1DdataFileReader(demo_eps_alpha_max_file,
924 demo_eps_alpha_max_timeArray,
925 demo_eps_alpha_max_daArray,
926 demo_eps_alpha_max_ntime);
927 token6 >> token_value;
928 demo_eps_alpha_max_startTime = token_value;
931 case demo_eps_pitch_max_flag:
933 demo_eps_pitch_max = true;
934 demo_eps_pitch_max_file = aircraft_directory + linetoken3;
935 token4 >> token_value_convert1;
936 token5 >> token_value_convert2;
937 convert_y = uiuc_convert(token_value_convert1);
938 convert_x = uiuc_convert(token_value_convert2);
939 uiuc_1DdataFileReader(demo_eps_pitch_max_file,
940 demo_eps_pitch_max_timeArray,
941 demo_eps_pitch_max_daArray,
942 demo_eps_pitch_max_ntime);
943 token6 >> token_value;
944 demo_eps_pitch_max_startTime = token_value;
947 case demo_eps_pitch_min_flag:
949 demo_eps_pitch_min = true;
950 demo_eps_pitch_min_file = aircraft_directory + linetoken3;
951 token4 >> token_value_convert1;
952 token5 >> token_value_convert2;
953 convert_y = uiuc_convert(token_value_convert1);
954 convert_x = uiuc_convert(token_value_convert2);
955 uiuc_1DdataFileReader(demo_eps_pitch_min_file,
956 demo_eps_pitch_min_timeArray,
957 demo_eps_pitch_min_daArray,
958 demo_eps_pitch_min_ntime);
959 token6 >> token_value;
960 demo_eps_pitch_min_startTime = token_value;
963 case demo_eps_roll_max_flag:
965 demo_eps_roll_max = true;
966 demo_eps_roll_max_file = aircraft_directory + linetoken3;
967 token4 >> token_value_convert1;
968 token5 >> token_value_convert2;
969 convert_y = uiuc_convert(token_value_convert1);
970 convert_x = uiuc_convert(token_value_convert2);
971 uiuc_1DdataFileReader(demo_eps_roll_max_file,
972 demo_eps_roll_max_timeArray,
973 demo_eps_roll_max_daArray,
974 demo_eps_roll_max_ntime);
975 token6 >> token_value;
976 demo_eps_roll_max_startTime = token_value;
979 case demo_eps_thrust_min_flag:
981 demo_eps_thrust_min = true;
982 demo_eps_thrust_min_file = aircraft_directory + linetoken3;
983 token4 >> token_value_convert1;
984 token5 >> token_value_convert2;
985 convert_y = uiuc_convert(token_value_convert1);
986 convert_x = uiuc_convert(token_value_convert2);
987 uiuc_1DdataFileReader(demo_eps_thrust_min_file,
988 demo_eps_thrust_min_timeArray,
989 demo_eps_thrust_min_daArray,
990 demo_eps_thrust_min_ntime);
991 token6 >> token_value;
992 demo_eps_thrust_min_startTime = token_value;
995 case demo_eps_airspeed_max_flag:
997 demo_eps_airspeed_max = true;
998 demo_eps_airspeed_max_file = aircraft_directory + linetoken3;
999 token4 >> token_value_convert1;
1000 token5 >> token_value_convert2;
1001 convert_y = uiuc_convert(token_value_convert1);
1002 convert_x = uiuc_convert(token_value_convert2);
1003 uiuc_1DdataFileReader(demo_eps_airspeed_max_file,
1004 demo_eps_airspeed_max_timeArray,
1005 demo_eps_airspeed_max_daArray,
1006 demo_eps_airspeed_max_ntime);
1007 token6 >> token_value;
1008 demo_eps_airspeed_max_startTime = token_value;
1011 case demo_eps_airspeed_min_flag:
1013 demo_eps_airspeed_min = true;
1014 demo_eps_airspeed_min_file = aircraft_directory + linetoken3;
1015 token4 >> token_value_convert1;
1016 token5 >> token_value_convert2;
1017 convert_y = uiuc_convert(token_value_convert1);
1018 convert_x = uiuc_convert(token_value_convert2);
1019 uiuc_1DdataFileReader(demo_eps_airspeed_min_file,
1020 demo_eps_airspeed_min_timeArray,
1021 demo_eps_airspeed_min_daArray,
1022 demo_eps_airspeed_min_ntime);
1023 token6 >> token_value;
1024 demo_eps_airspeed_min_startTime = token_value;
1027 case demo_eps_flap_max_flag:
1029 demo_eps_flap_max = true;
1030 demo_eps_flap_max_file = aircraft_directory + linetoken3;
1031 token4 >> token_value_convert1;
1032 token5 >> token_value_convert2;
1033 convert_y = uiuc_convert(token_value_convert1);
1034 convert_x = uiuc_convert(token_value_convert2);
1035 uiuc_1DdataFileReader(demo_eps_flap_max_file,
1036 demo_eps_flap_max_timeArray,
1037 demo_eps_flap_max_daArray,
1038 demo_eps_flap_max_ntime);
1039 token6 >> token_value;
1040 demo_eps_flap_max_startTime = token_value;
1043 case demo_boot_cycle_tail_flag:
1045 demo_boot_cycle_tail = true;
1046 demo_boot_cycle_tail_file = aircraft_directory + linetoken3;
1047 token4 >> token_value_convert1;
1048 token5 >> token_value_convert2;
1049 convert_y = uiuc_convert(token_value_convert1);
1050 convert_x = uiuc_convert(token_value_convert2);
1051 uiuc_1DdataFileReader(demo_boot_cycle_tail_file,
1052 demo_boot_cycle_tail_timeArray,
1053 demo_boot_cycle_tail_daArray,
1054 demo_boot_cycle_tail_ntime);
1055 token6 >> token_value;
1056 demo_boot_cycle_tail_startTime = token_value;
1059 case demo_boot_cycle_wing_left_flag:
1061 demo_boot_cycle_wing_left = true;
1062 demo_boot_cycle_wing_left_file = aircraft_directory + linetoken3;
1063 token4 >> token_value_convert1;
1064 token5 >> token_value_convert2;
1065 convert_y = uiuc_convert(token_value_convert1);
1066 convert_x = uiuc_convert(token_value_convert2);
1067 uiuc_1DdataFileReader(demo_boot_cycle_wing_left_file,
1068 demo_boot_cycle_wing_left_timeArray,
1069 demo_boot_cycle_wing_left_daArray,
1070 demo_boot_cycle_wing_left_ntime);
1071 token6 >> token_value;
1072 demo_boot_cycle_wing_left_startTime = token_value;
1075 case demo_boot_cycle_wing_right_flag:
1077 demo_boot_cycle_wing_right = true;
1078 demo_boot_cycle_wing_right_file = aircraft_directory + linetoken3;
1079 token4 >> token_value_convert1;
1080 token5 >> token_value_convert2;
1081 convert_y = uiuc_convert(token_value_convert1);
1082 convert_x = uiuc_convert(token_value_convert2);
1083 uiuc_1DdataFileReader(demo_boot_cycle_wing_right_file,
1084 demo_boot_cycle_wing_right_timeArray,
1085 demo_boot_cycle_wing_right_daArray,
1086 demo_boot_cycle_wing_right_ntime);
1087 token6 >> token_value;
1088 demo_boot_cycle_wing_right_startTime = token_value;
1091 case demo_eps_pitch_input_flag:
1093 demo_eps_pitch_input = true;
1094 demo_eps_pitch_input_file = aircraft_directory + linetoken3;
1095 token4 >> token_value_convert1;
1096 token5 >> token_value_convert2;
1097 convert_y = uiuc_convert(token_value_convert1);
1098 convert_x = uiuc_convert(token_value_convert2);
1099 uiuc_1DdataFileReader(demo_eps_pitch_input_file,
1100 demo_eps_pitch_input_timeArray,
1101 demo_eps_pitch_input_daArray,
1102 demo_eps_pitch_input_ntime);
1103 token6 >> token_value;
1104 demo_eps_pitch_input_startTime = token_value;
1107 case demo_ap_pah_on_flag:
1109 demo_ap_pah_on = true;
1110 demo_ap_pah_on_file = aircraft_directory + linetoken3;
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 uiuc_1DdataFileReader(demo_ap_pah_on_file,
1116 demo_ap_pah_on_timeArray,
1117 demo_ap_pah_on_daArray,
1118 demo_ap_pah_on_ntime);
1119 token6 >> token_value;
1120 demo_ap_pah_on_startTime = token_value;
1123 case demo_ap_alh_on_flag:
1125 demo_ap_alh_on = true;
1126 demo_ap_alh_on_file = aircraft_directory + linetoken3;
1127 token4 >> token_value_convert1;
1128 token5 >> token_value_convert2;
1129 convert_y = uiuc_convert(token_value_convert1);
1130 convert_x = uiuc_convert(token_value_convert2);
1131 uiuc_1DdataFileReader(demo_ap_alh_on_file,
1132 demo_ap_alh_on_timeArray,
1133 demo_ap_alh_on_daArray,
1134 demo_ap_alh_on_ntime);
1135 token6 >> token_value;
1136 demo_ap_alh_on_startTime = token_value;
1139 case demo_ap_rah_on_flag:
1141 demo_ap_rah_on = true;
1142 demo_ap_rah_on_file = aircraft_directory + linetoken3;
1143 token4 >> token_value_convert1;
1144 token5 >> token_value_convert2;
1145 convert_y = uiuc_convert(token_value_convert1);
1146 convert_x = uiuc_convert(token_value_convert2);
1147 uiuc_1DdataFileReader(demo_ap_rah_on_file,
1148 demo_ap_rah_on_timeArray,
1149 demo_ap_rah_on_daArray,
1150 demo_ap_rah_on_ntime);
1151 token6 >> token_value;
1152 demo_ap_rah_on_startTime = token_value;
1155 case demo_ap_hh_on_flag:
1157 demo_ap_hh_on = true;
1158 demo_ap_hh_on_file = aircraft_directory + linetoken3;
1159 token4 >> token_value_convert1;
1160 token5 >> token_value_convert2;
1161 convert_y = uiuc_convert(token_value_convert1);
1162 convert_x = uiuc_convert(token_value_convert2);
1163 uiuc_1DdataFileReader(demo_ap_hh_on_file,
1164 demo_ap_hh_on_timeArray,
1165 demo_ap_hh_on_daArray,
1166 demo_ap_hh_on_ntime);
1167 token6 >> token_value;
1168 demo_ap_hh_on_startTime = token_value;
1171 case demo_ap_Theta_ref_flag:
1173 demo_ap_Theta_ref = true;
1174 demo_ap_Theta_ref_file = aircraft_directory + linetoken3;
1175 token4 >> token_value_convert1;
1176 token5 >> token_value_convert2;
1177 convert_y = uiuc_convert(token_value_convert1);
1178 convert_x = uiuc_convert(token_value_convert2);
1179 uiuc_1DdataFileReader(demo_ap_Theta_ref_file,
1180 demo_ap_Theta_ref_timeArray,
1181 demo_ap_Theta_ref_daArray,
1182 demo_ap_Theta_ref_ntime);
1183 token6 >> token_value;
1184 demo_ap_Theta_ref_startTime = token_value;
1187 case demo_ap_alt_ref_flag:
1189 demo_ap_alt_ref = true;
1190 demo_ap_alt_ref_file = aircraft_directory + linetoken3;
1191 token4 >> token_value_convert1;
1192 token5 >> token_value_convert2;
1193 convert_y = uiuc_convert(token_value_convert1);
1194 convert_x = uiuc_convert(token_value_convert2);
1195 uiuc_1DdataFileReader(demo_ap_alt_ref_file,
1196 demo_ap_alt_ref_timeArray,
1197 demo_ap_alt_ref_daArray,
1198 demo_ap_alt_ref_ntime);
1199 token6 >> token_value;
1200 demo_ap_alt_ref_startTime = token_value;
1203 case demo_ap_Phi_ref_flag:
1205 demo_ap_Phi_ref = true;
1206 demo_ap_Phi_ref_file = aircraft_directory + linetoken3;
1207 token4 >> token_value_convert1;
1208 token5 >> token_value_convert2;
1209 convert_y = uiuc_convert(token_value_convert1);
1210 convert_x = uiuc_convert(token_value_convert2);
1211 uiuc_1DdataFileReader(demo_ap_Phi_ref_file,
1212 demo_ap_Phi_ref_timeArray,
1213 demo_ap_Phi_ref_daArray,
1214 demo_ap_Phi_ref_ntime);
1215 token6 >> token_value;
1216 demo_ap_Phi_ref_startTime = token_value;
1219 case demo_ap_Psi_ref_flag:
1221 demo_ap_Psi_ref = true;
1222 demo_ap_Psi_ref_file = aircraft_directory + linetoken3;
1223 token4 >> token_value_convert1;
1224 token5 >> token_value_convert2;
1225 convert_y = uiuc_convert(token_value_convert1);
1226 convert_x = uiuc_convert(token_value_convert2);
1227 uiuc_1DdataFileReader(demo_ap_Psi_ref_file,
1228 demo_ap_Psi_ref_timeArray,
1229 demo_ap_Psi_ref_daArray,
1230 demo_ap_Psi_ref_ntime);
1231 token6 >> token_value;
1232 demo_ap_Psi_ref_startTime = token_value;
1235 case tactilefadef_flag:
1237 int tactilefadef_index, i;
1238 string tactilefadef_file;
1240 tactilefadef = true;
1241 tactilefadef_file = aircraft_directory + linetoken3;
1242 token4 >> tactilefadef_index;
1243 if (tactilefadef_index < 0 || tactilefadef_index >= 30)
1244 uiuc_warnings_errors(1, *command_line);
1245 if (tactilefadef_index > tactilefadef_nf)
1246 tactilefadef_nf = tactilefadef_index;
1247 token5 >> flap_value;
1248 token6 >> token_value_convert1;
1249 token7 >> token_value_convert2;
1250 token8 >> token_value_convert3;
1251 token9 >> token_value_convert4;
1252 token10 >> tactilefadef_nice;
1253 convert_z = uiuc_convert(token_value_convert1);
1254 convert_x = uiuc_convert(token_value_convert2);
1255 convert_y = uiuc_convert(token_value_convert3);
1256 convert_f = uiuc_convert(token_value_convert4);
1257 tactilefadef_fArray[tactilefadef_index] = flap_value * convert_f;
1258 /* call 2D File Reader with file name (tactilefadef_file) and
1259 conversion factors; function returns array of
1260 elevator deflections (deArray) and corresponding
1261 alpha (aArray) and delta CZ (CZArray) values and
1262 max number of terms in alpha arrays (nAlphaArray)
1263 and delfection array (nde) */
1264 uiuc_2DdataFileReader(tactilefadef_file,
1270 d_2_to_3(datafile_xArray, tactilefadef_aArray, tactilefadef_index);
1271 d_1_to_2(datafile_yArray, tactilefadef_deArray, tactilefadef_index);
1272 d_2_to_3(datafile_zArray, tactilefadef_tactileArray, tactilefadef_index);
1273 i_1_to_2(datafile_nxArray, tactilefadef_nAlphaArray, tactilefadef_index);
1274 tactilefadef_nde[tactilefadef_index] = datafile_ny;
1275 if (tactilefadef_first==true)
1277 if (tactilefadef_nice == 1)
1279 tactilefadef_na_nice = datafile_nxArray[1];
1280 tactilefadef_nde_nice = datafile_ny;
1281 d_1_to_1(datafile_yArray, tactilefadef_deArray_nice);
1282 for (i=1; i<=tactilefadef_na_nice; i++)
1283 tactilefadef_aArray_nice[i] = datafile_xArray[1][i];
1285 tactilefadef_first=false;
1289 case tactile_pitch_flag:
1294 case demo_tactile_flag:
1296 demo_tactile = true;
1297 demo_tactile_file = aircraft_directory + linetoken3;
1298 token4 >> token_value_convert1;
1299 token5 >> token_value_convert2;
1300 convert_y = uiuc_convert(token_value_convert1);
1301 convert_x = uiuc_convert(token_value_convert2);
1302 uiuc_1DdataFileReader(demo_tactile_file,
1303 demo_tactile_timeArray,
1304 demo_tactile_daArray,
1305 demo_tactile_ntime);
1306 token6 >> token_value;
1307 demo_tactile_startTime = token_value;
1310 case demo_ice_tail_flag:
1312 demo_ice_tail = true;
1313 demo_ice_tail_file = aircraft_directory + linetoken3;
1314 token4 >> token_value_convert1;
1315 token5 >> token_value_convert2;
1316 convert_y = uiuc_convert(token_value_convert1);
1317 convert_x = uiuc_convert(token_value_convert2);
1318 uiuc_1DdataFileReader(demo_ice_tail_file,
1319 demo_ice_tail_timeArray,
1320 demo_ice_tail_daArray,
1321 demo_ice_tail_ntime);
1322 token6 >> token_value;
1323 demo_ice_tail_startTime = token_value;
1326 case demo_ice_left_flag:
1328 demo_ice_left = true;
1329 demo_ice_left_file = aircraft_directory + linetoken3;
1330 token4 >> token_value_convert1;
1331 token5 >> token_value_convert2;
1332 convert_y = uiuc_convert(token_value_convert1);
1333 convert_x = uiuc_convert(token_value_convert2);
1334 uiuc_1DdataFileReader(demo_ice_left_file,
1335 demo_ice_left_timeArray,
1336 demo_ice_left_daArray,
1337 demo_ice_left_ntime);
1338 token6 >> token_value;
1339 demo_ice_left_startTime = token_value;
1342 case demo_ice_right_flag:
1344 demo_ice_right = true;
1345 demo_ice_right_file = aircraft_directory + linetoken3;
1346 token4 >> token_value_convert1;
1347 token5 >> token_value_convert2;
1348 convert_y = uiuc_convert(token_value_convert1);
1349 convert_x = uiuc_convert(token_value_convert2);
1350 uiuc_1DdataFileReader(demo_ice_right_file,
1351 demo_ice_right_timeArray,
1352 demo_ice_right_daArray,
1353 demo_ice_right_ntime);
1354 token6 >> token_value;
1355 demo_ice_right_startTime = token_value;
1360 if (ignore_unknown_keywords) {
1363 // print error message
1364 uiuc_warnings_errors(2, *command_line);