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., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
70 USA or view http://www.gnu.org/copyleft/gpl.html.
72 **********************************************************************/
74 #include <simgear/compiler.h>
76 #if defined( __MWERKS__ )
77 // -dw- optimizer chokes (big-time) trying to optimize humongous
78 // loop/switch statements
79 #pragma optimization_level 0
86 #include "uiuc_menu_ice.h"
96 void parse_ice( const string& linetoken2, const string& linetoken3,
97 const string& linetoken4, const string& linetoken5,
98 const string& linetoken6, const string& linetoken7,
99 const string& linetoken8, const string& linetoken9,
100 const string& linetoken10, const string& aircraft_directory,
101 LIST command_line ) {
103 int token_value_convert1, token_value_convert2, token_value_convert3;
104 double datafile_xArray[100][100], datafile_yArray[100];
105 double datafile_zArray[100][100];
106 int datafile_nxArray[100], datafile_ny;
107 istringstream token3(linetoken3.c_str());
108 istringstream token4(linetoken4.c_str());
109 istringstream token5(linetoken5.c_str());
110 istringstream token6(linetoken6.c_str());
111 istringstream token7(linetoken7.c_str());
112 istringstream token8(linetoken8.c_str());
113 istringstream token9(linetoken9.c_str());
114 istringstream token10(linetoken10.c_str());
116 static bool tactilefadef_first = true;
118 switch(ice_map[linetoken2])
122 if (check_float(linetoken3))
123 token3 >> token_value;
126 uiuc_warnings_errors(1, *command_line);
129 iceTime = token_value;
132 case transientTime_flag:
134 if (check_float(linetoken3))
135 token3 >> token_value;
137 uiuc_warnings_errors(1, *command_line);
139 transientTime = token_value;
142 case eta_ice_final_flag:
144 if (check_float(linetoken3))
145 token3 >> token_value;
147 uiuc_warnings_errors(1, *command_line);
149 eta_ice_final = token_value;
152 case beta_probe_wing_flag:
154 if (check_float(linetoken3))
155 token3 >> token_value;
157 uiuc_warnings_errors(1, *command_line);
160 x_probe_wing = token_value;
163 case beta_probe_tail_flag:
165 if (check_float(linetoken3))
166 token3 >> token_value;
168 uiuc_warnings_errors(1, *command_line);
171 x_probe_tail = token_value;
176 if (check_float(linetoken3))
177 token3 >> token_value;
179 uiuc_warnings_errors(1, *command_line);
186 if (check_float(linetoken3))
187 token3 >> token_value;
189 uiuc_warnings_errors(1, *command_line);
196 if (check_float(linetoken3))
197 token3 >> token_value;
199 uiuc_warnings_errors(1, *command_line);
206 if (check_float(linetoken3))
207 token3 >> token_value;
209 uiuc_warnings_errors(1, *command_line);
211 kCD_adot = token_value;
216 if (check_float(linetoken3))
217 token3 >> token_value;
219 uiuc_warnings_errors(1, *command_line);
226 if (check_float(linetoken3))
227 token3 >> token_value;
229 uiuc_warnings_errors(1, *command_line);
231 kCD_de = token_value;
236 if (check_float(linetoken3))
237 token3 >> token_value;
239 uiuc_warnings_errors(1, *command_line);
246 if (check_float(linetoken3))
247 token3 >> token_value;
249 uiuc_warnings_errors(1, *command_line);
256 if (check_float(linetoken3))
257 token3 >> token_value;
259 uiuc_warnings_errors(1, *command_line);
266 if (check_float(linetoken3))
267 token3 >> token_value;
269 uiuc_warnings_errors(1, *command_line);
271 kCX_a2 = token_value;
276 if (check_float(linetoken3))
277 token3 >> token_value;
279 uiuc_warnings_errors(1, *command_line);
281 kCX_a3 = token_value;
286 if (check_float(linetoken3))
287 token3 >> token_value;
289 uiuc_warnings_errors(1, *command_line);
291 kCX_adot = token_value;
296 if (check_float(linetoken3))
297 token3 >> token_value;
299 uiuc_warnings_errors(1, *command_line);
306 if (check_float(linetoken3))
307 token3 >> token_value;
309 uiuc_warnings_errors(1, *command_line);
311 kCX_de = token_value;
316 if (check_float(linetoken3))
317 token3 >> token_value;
319 uiuc_warnings_errors(1, *command_line);
321 kCX_dr = token_value;
326 if (check_float(linetoken3))
327 token3 >> token_value;
329 uiuc_warnings_errors(1, *command_line);
331 kCX_df = token_value;
336 if (check_float(linetoken3))
337 token3 >> token_value;
339 uiuc_warnings_errors(1, *command_line);
341 kCX_adf = token_value;
346 if (check_float(linetoken3))
347 token3 >> token_value;
349 uiuc_warnings_errors(1, *command_line);
356 if (check_float(linetoken3))
357 token3 >> token_value;
359 uiuc_warnings_errors(1, *command_line);
366 if (check_float(linetoken3))
367 token3 >> token_value;
369 uiuc_warnings_errors(1, *command_line);
371 kCL_adot = token_value;
376 if (check_float(linetoken3))
377 token3 >> token_value;
379 uiuc_warnings_errors(1, *command_line);
386 if (check_float(linetoken3))
387 token3 >> token_value;
389 uiuc_warnings_errors(1, *command_line);
391 kCL_de = token_value;
396 if (check_float(linetoken3))
397 token3 >> token_value;
399 uiuc_warnings_errors(1, *command_line);
406 if (check_float(linetoken3))
407 token3 >> token_value;
409 uiuc_warnings_errors(1, *command_line);
416 if (check_float(linetoken3))
417 token3 >> token_value;
419 uiuc_warnings_errors(1, *command_line);
421 kCZ_a2 = token_value;
426 if (check_float(linetoken3))
427 token3 >> token_value;
429 uiuc_warnings_errors(1, *command_line);
431 kCZ_a3 = token_value;
436 if (check_float(linetoken3))
437 token3 >> token_value;
439 uiuc_warnings_errors(1, *command_line);
441 kCZ_adot = token_value;
446 if (check_float(linetoken3))
447 token3 >> token_value;
449 uiuc_warnings_errors(1, *command_line);
456 if (check_float(linetoken3))
457 token3 >> token_value;
459 uiuc_warnings_errors(1, *command_line);
461 kCZ_de = token_value;
466 if (check_float(linetoken3))
467 token3 >> token_value;
469 uiuc_warnings_errors(1, *command_line);
471 kCZ_deb2 = token_value;
476 if (check_float(linetoken3))
477 token3 >> token_value;
479 uiuc_warnings_errors(1, *command_line);
481 kCZ_df = token_value;
486 if (check_float(linetoken3))
487 token3 >> token_value;
489 uiuc_warnings_errors(1, *command_line);
491 kCZ_adf = token_value;
496 if (check_float(linetoken3))
497 token3 >> token_value;
499 uiuc_warnings_errors(1, *command_line);
506 if (check_float(linetoken3))
507 token3 >> token_value;
509 uiuc_warnings_errors(1, *command_line);
516 if (check_float(linetoken3))
517 token3 >> token_value;
519 uiuc_warnings_errors(1, *command_line);
521 kCm_a2 = token_value;
526 if (check_float(linetoken3))
527 token3 >> token_value;
529 uiuc_warnings_errors(1, *command_line);
531 kCm_adot = token_value;
536 if (check_float(linetoken3))
537 token3 >> token_value;
539 uiuc_warnings_errors(1, *command_line);
546 if (check_float(linetoken3))
547 token3 >> token_value;
549 uiuc_warnings_errors(1, *command_line);
551 kCm_de = token_value;
556 if (check_float(linetoken3))
557 token3 >> token_value;
559 uiuc_warnings_errors(1, *command_line);
561 kCm_b2 = token_value;
566 if (check_float(linetoken3))
567 token3 >> token_value;
569 uiuc_warnings_errors(1, *command_line);
576 if (check_float(linetoken3))
577 token3 >> token_value;
579 uiuc_warnings_errors(1, *command_line);
581 kCm_df = token_value;
586 if (check_float(linetoken3))
587 token3 >> token_value;
589 uiuc_warnings_errors(1, *command_line);
596 if (check_float(linetoken3))
597 token3 >> token_value;
599 uiuc_warnings_errors(1, *command_line);
601 kCY_beta = token_value;
606 if (check_float(linetoken3))
607 token3 >> token_value;
609 uiuc_warnings_errors(1, *command_line);
616 if (check_float(linetoken3))
617 token3 >> token_value;
619 uiuc_warnings_errors(1, *command_line);
626 if (check_float(linetoken3))
627 token3 >> token_value;
629 uiuc_warnings_errors(1, *command_line);
631 kCY_da = token_value;
636 if (check_float(linetoken3))
637 token3 >> token_value;
639 uiuc_warnings_errors(1, *command_line);
641 kCY_dr = token_value;
646 if (check_float(linetoken3))
647 token3 >> token_value;
649 uiuc_warnings_errors(1, *command_line);
651 kCY_dra = token_value;
656 if (check_float(linetoken3))
657 token3 >> token_value;
659 uiuc_warnings_errors(1, *command_line);
661 kCY_bdot = token_value;
666 if (check_float(linetoken3))
667 token3 >> token_value;
669 uiuc_warnings_errors(1, *command_line);
676 if (check_float(linetoken3))
677 token3 >> token_value;
679 uiuc_warnings_errors(1, *command_line);
681 kCl_beta = token_value;
686 if (check_float(linetoken3))
687 token3 >> token_value;
689 uiuc_warnings_errors(1, *command_line);
696 if (check_float(linetoken3))
697 token3 >> token_value;
699 uiuc_warnings_errors(1, *command_line);
706 if (check_float(linetoken3))
707 token3 >> token_value;
709 uiuc_warnings_errors(1, *command_line);
711 kCl_da = token_value;
716 if (check_float(linetoken3))
717 token3 >> token_value;
719 uiuc_warnings_errors(1, *command_line);
721 kCl_dr = token_value;
726 if (check_float(linetoken3))
727 token3 >> token_value;
729 uiuc_warnings_errors(1, *command_line);
731 kCl_daa = token_value;
736 if (check_float(linetoken3))
737 token3 >> token_value;
739 uiuc_warnings_errors(1, *command_line);
746 if (check_float(linetoken3))
747 token3 >> token_value;
749 uiuc_warnings_errors(1, *command_line);
751 kCn_beta = token_value;
756 if (check_float(linetoken3))
757 token3 >> token_value;
759 uiuc_warnings_errors(1, *command_line);
766 if (check_float(linetoken3))
767 token3 >> token_value;
769 uiuc_warnings_errors(1, *command_line);
776 if (check_float(linetoken3))
777 token3 >> token_value;
779 uiuc_warnings_errors(1, *command_line);
781 kCn_da = token_value;
786 if (check_float(linetoken3))
787 token3 >> token_value;
789 uiuc_warnings_errors(1, *command_line);
791 kCn_dr = token_value;
796 if (check_float(linetoken3))
797 token3 >> token_value;
799 uiuc_warnings_errors(1, *command_line);
806 if (check_float(linetoken3))
807 token3 >> token_value;
809 uiuc_warnings_errors(1, *command_line);
811 kCn_b3 = token_value;
817 if (check_float(linetoken4))
818 token4 >> token_value;
820 uiuc_warnings_errors(1, *command_line);
822 if (index < 0 || index >= 20)
823 uiuc_warnings_errors(1, *command_line);
824 bootTime[index] = token_value;
825 bootTrue[index] = true;
828 case eta_wing_left_input_flag:
830 eta_from_file = true;
831 eta_wing_left_input = true;
832 eta_wing_left_input_file = aircraft_directory + linetoken3;
833 token4 >> token_value_convert1;
834 token5 >> token_value_convert2;
835 convert_y = uiuc_convert(token_value_convert1);
836 convert_x = uiuc_convert(token_value_convert2);
837 uiuc_1DdataFileReader(eta_wing_left_input_file,
838 eta_wing_left_input_timeArray,
839 eta_wing_left_input_daArray,
840 eta_wing_left_input_ntime);
841 token6 >> token_value;
842 eta_wing_left_input_startTime = token_value;
845 case eta_wing_right_input_flag:
847 eta_from_file = true;
848 eta_wing_right_input = true;
849 eta_wing_right_input_file = aircraft_directory + linetoken3;
850 token4 >> token_value_convert1;
851 token5 >> token_value_convert2;
852 convert_y = uiuc_convert(token_value_convert1);
853 convert_x = uiuc_convert(token_value_convert2);
854 uiuc_1DdataFileReader(eta_wing_right_input_file,
855 eta_wing_right_input_timeArray,
856 eta_wing_right_input_daArray,
857 eta_wing_right_input_ntime);
858 token6 >> token_value;
859 eta_wing_right_input_startTime = token_value;
862 case eta_tail_input_flag:
864 eta_from_file = true;
865 eta_tail_input = true;
866 eta_tail_input_file = aircraft_directory + linetoken3;
867 token4 >> token_value_convert1;
868 token5 >> token_value_convert2;
869 convert_y = uiuc_convert(token_value_convert1);
870 convert_x = uiuc_convert(token_value_convert2);
871 uiuc_1DdataFileReader(eta_tail_input_file,
872 eta_tail_input_timeArray,
873 eta_tail_input_daArray,
874 eta_tail_input_ntime);
875 token6 >> token_value;
876 eta_tail_input_startTime = token_value;
879 case nonlin_ice_case_flag:
881 token3 >> nonlin_ice_case;
886 if (check_float(linetoken3))
887 token3 >> token_value;
889 uiuc_warnings_errors(1, *command_line);
891 eta_tail = token_value;
894 case eta_wing_left_flag:
896 if (check_float(linetoken3))
897 token3 >> token_value;
899 uiuc_warnings_errors(1, *command_line);
901 eta_wing_left = token_value;
904 case eta_wing_right_flag:
906 if (check_float(linetoken3))
907 token3 >> token_value;
909 uiuc_warnings_errors(1, *command_line);
911 eta_wing_right = token_value;
914 case demo_eps_alpha_max_flag:
916 demo_eps_alpha_max = true;
917 demo_eps_alpha_max_file = aircraft_directory + linetoken3;
918 token4 >> token_value_convert1;
919 token5 >> token_value_convert2;
920 convert_y = uiuc_convert(token_value_convert1);
921 convert_x = uiuc_convert(token_value_convert2);
922 uiuc_1DdataFileReader(demo_eps_alpha_max_file,
923 demo_eps_alpha_max_timeArray,
924 demo_eps_alpha_max_daArray,
925 demo_eps_alpha_max_ntime);
926 token6 >> token_value;
927 demo_eps_alpha_max_startTime = token_value;
930 case demo_eps_pitch_max_flag:
932 demo_eps_pitch_max = true;
933 demo_eps_pitch_max_file = aircraft_directory + linetoken3;
934 token4 >> token_value_convert1;
935 token5 >> token_value_convert2;
936 convert_y = uiuc_convert(token_value_convert1);
937 convert_x = uiuc_convert(token_value_convert2);
938 uiuc_1DdataFileReader(demo_eps_pitch_max_file,
939 demo_eps_pitch_max_timeArray,
940 demo_eps_pitch_max_daArray,
941 demo_eps_pitch_max_ntime);
942 token6 >> token_value;
943 demo_eps_pitch_max_startTime = token_value;
946 case demo_eps_pitch_min_flag:
948 demo_eps_pitch_min = true;
949 demo_eps_pitch_min_file = aircraft_directory + linetoken3;
950 token4 >> token_value_convert1;
951 token5 >> token_value_convert2;
952 convert_y = uiuc_convert(token_value_convert1);
953 convert_x = uiuc_convert(token_value_convert2);
954 uiuc_1DdataFileReader(demo_eps_pitch_min_file,
955 demo_eps_pitch_min_timeArray,
956 demo_eps_pitch_min_daArray,
957 demo_eps_pitch_min_ntime);
958 token6 >> token_value;
959 demo_eps_pitch_min_startTime = token_value;
962 case demo_eps_roll_max_flag:
964 demo_eps_roll_max = true;
965 demo_eps_roll_max_file = aircraft_directory + linetoken3;
966 token4 >> token_value_convert1;
967 token5 >> token_value_convert2;
968 convert_y = uiuc_convert(token_value_convert1);
969 convert_x = uiuc_convert(token_value_convert2);
970 uiuc_1DdataFileReader(demo_eps_roll_max_file,
971 demo_eps_roll_max_timeArray,
972 demo_eps_roll_max_daArray,
973 demo_eps_roll_max_ntime);
974 token6 >> token_value;
975 demo_eps_roll_max_startTime = token_value;
978 case demo_eps_thrust_min_flag:
980 demo_eps_thrust_min = true;
981 demo_eps_thrust_min_file = aircraft_directory + linetoken3;
982 token4 >> token_value_convert1;
983 token5 >> token_value_convert2;
984 convert_y = uiuc_convert(token_value_convert1);
985 convert_x = uiuc_convert(token_value_convert2);
986 uiuc_1DdataFileReader(demo_eps_thrust_min_file,
987 demo_eps_thrust_min_timeArray,
988 demo_eps_thrust_min_daArray,
989 demo_eps_thrust_min_ntime);
990 token6 >> token_value;
991 demo_eps_thrust_min_startTime = token_value;
994 case demo_eps_airspeed_max_flag:
996 demo_eps_airspeed_max = true;
997 demo_eps_airspeed_max_file = aircraft_directory + linetoken3;
998 token4 >> token_value_convert1;
999 token5 >> token_value_convert2;
1000 convert_y = uiuc_convert(token_value_convert1);
1001 convert_x = uiuc_convert(token_value_convert2);
1002 uiuc_1DdataFileReader(demo_eps_airspeed_max_file,
1003 demo_eps_airspeed_max_timeArray,
1004 demo_eps_airspeed_max_daArray,
1005 demo_eps_airspeed_max_ntime);
1006 token6 >> token_value;
1007 demo_eps_airspeed_max_startTime = token_value;
1010 case demo_eps_airspeed_min_flag:
1012 demo_eps_airspeed_min = true;
1013 demo_eps_airspeed_min_file = aircraft_directory + linetoken3;
1014 token4 >> token_value_convert1;
1015 token5 >> token_value_convert2;
1016 convert_y = uiuc_convert(token_value_convert1);
1017 convert_x = uiuc_convert(token_value_convert2);
1018 uiuc_1DdataFileReader(demo_eps_airspeed_min_file,
1019 demo_eps_airspeed_min_timeArray,
1020 demo_eps_airspeed_min_daArray,
1021 demo_eps_airspeed_min_ntime);
1022 token6 >> token_value;
1023 demo_eps_airspeed_min_startTime = token_value;
1026 case demo_eps_flap_max_flag:
1028 demo_eps_flap_max = true;
1029 demo_eps_flap_max_file = aircraft_directory + linetoken3;
1030 token4 >> token_value_convert1;
1031 token5 >> token_value_convert2;
1032 convert_y = uiuc_convert(token_value_convert1);
1033 convert_x = uiuc_convert(token_value_convert2);
1034 uiuc_1DdataFileReader(demo_eps_flap_max_file,
1035 demo_eps_flap_max_timeArray,
1036 demo_eps_flap_max_daArray,
1037 demo_eps_flap_max_ntime);
1038 token6 >> token_value;
1039 demo_eps_flap_max_startTime = token_value;
1042 case demo_boot_cycle_tail_flag:
1044 demo_boot_cycle_tail = true;
1045 demo_boot_cycle_tail_file = aircraft_directory + linetoken3;
1046 token4 >> token_value_convert1;
1047 token5 >> token_value_convert2;
1048 convert_y = uiuc_convert(token_value_convert1);
1049 convert_x = uiuc_convert(token_value_convert2);
1050 uiuc_1DdataFileReader(demo_boot_cycle_tail_file,
1051 demo_boot_cycle_tail_timeArray,
1052 demo_boot_cycle_tail_daArray,
1053 demo_boot_cycle_tail_ntime);
1054 token6 >> token_value;
1055 demo_boot_cycle_tail_startTime = token_value;
1058 case demo_boot_cycle_wing_left_flag:
1060 demo_boot_cycle_wing_left = true;
1061 demo_boot_cycle_wing_left_file = aircraft_directory + linetoken3;
1062 token4 >> token_value_convert1;
1063 token5 >> token_value_convert2;
1064 convert_y = uiuc_convert(token_value_convert1);
1065 convert_x = uiuc_convert(token_value_convert2);
1066 uiuc_1DdataFileReader(demo_boot_cycle_wing_left_file,
1067 demo_boot_cycle_wing_left_timeArray,
1068 demo_boot_cycle_wing_left_daArray,
1069 demo_boot_cycle_wing_left_ntime);
1070 token6 >> token_value;
1071 demo_boot_cycle_wing_left_startTime = token_value;
1074 case demo_boot_cycle_wing_right_flag:
1076 demo_boot_cycle_wing_right = true;
1077 demo_boot_cycle_wing_right_file = aircraft_directory + linetoken3;
1078 token4 >> token_value_convert1;
1079 token5 >> token_value_convert2;
1080 convert_y = uiuc_convert(token_value_convert1);
1081 convert_x = uiuc_convert(token_value_convert2);
1082 uiuc_1DdataFileReader(demo_boot_cycle_wing_right_file,
1083 demo_boot_cycle_wing_right_timeArray,
1084 demo_boot_cycle_wing_right_daArray,
1085 demo_boot_cycle_wing_right_ntime);
1086 token6 >> token_value;
1087 demo_boot_cycle_wing_right_startTime = token_value;
1090 case demo_eps_pitch_input_flag:
1092 demo_eps_pitch_input = true;
1093 demo_eps_pitch_input_file = aircraft_directory + linetoken3;
1094 token4 >> token_value_convert1;
1095 token5 >> token_value_convert2;
1096 convert_y = uiuc_convert(token_value_convert1);
1097 convert_x = uiuc_convert(token_value_convert2);
1098 uiuc_1DdataFileReader(demo_eps_pitch_input_file,
1099 demo_eps_pitch_input_timeArray,
1100 demo_eps_pitch_input_daArray,
1101 demo_eps_pitch_input_ntime);
1102 token6 >> token_value;
1103 demo_eps_pitch_input_startTime = token_value;
1106 case demo_ap_Theta_ref_deg_flag:
1108 demo_ap_Theta_ref_deg = true;
1109 demo_ap_Theta_ref_deg_file = aircraft_directory + linetoken3;
1110 token4 >> token_value_convert1;
1111 token5 >> token_value_convert2;
1112 convert_y = uiuc_convert(token_value_convert1);
1113 convert_x = uiuc_convert(token_value_convert2);
1114 uiuc_1DdataFileReader(demo_ap_Theta_ref_deg_file,
1115 demo_ap_Theta_ref_deg_timeArray,
1116 demo_ap_Theta_ref_deg_daArray,
1117 demo_ap_Theta_ref_deg_ntime);
1118 token6 >> token_value;
1119 demo_ap_Theta_ref_deg_startTime = token_value;
1122 case demo_ap_pah_on_flag:
1124 demo_ap_pah_on = true;
1125 demo_ap_pah_on_file = aircraft_directory + linetoken3;
1126 token4 >> token_value_convert1;
1127 token5 >> token_value_convert2;
1128 convert_y = uiuc_convert(token_value_convert1);
1129 convert_x = uiuc_convert(token_value_convert2);
1130 uiuc_1DdataFileReader(demo_ap_pah_on_file,
1131 demo_ap_pah_on_timeArray,
1132 demo_ap_pah_on_daArray,
1133 demo_ap_pah_on_ntime);
1134 token6 >> token_value;
1135 demo_ap_pah_on_startTime = token_value;
1138 case tactilefadef_flag:
1140 int tactilefadef_index, i;
1141 string tactilefadef_file;
1143 tactilefadef = true;
1144 tactilefadef_file = aircraft_directory + linetoken3;
1145 token4 >> tactilefadef_index;
1146 if (tactilefadef_index < 0 || tactilefadef_index >= 30)
1147 uiuc_warnings_errors(1, *command_line);
1148 if (tactilefadef_index > tactilefadef_nf)
1149 tactilefadef_nf = tactilefadef_index;
1150 token5 >> flap_value;
1151 tactilefadef_fArray[tactilefadef_index] = flap_value;
1152 token6 >> token_value_convert1;
1153 token7 >> token_value_convert2;
1154 token8 >> token_value_convert3;
1155 token9 >> tactilefadef_nice;
1156 convert_z = uiuc_convert(token_value_convert1);
1157 convert_x = uiuc_convert(token_value_convert2);
1158 convert_y = uiuc_convert(token_value_convert3);
1159 /* call 2D File Reader with file name (tactilefadef_file) and
1160 conversion factors; function returns array of
1161 elevator deflections (deArray) and corresponding
1162 alpha (aArray) and delta CZ (CZArray) values and
1163 max number of terms in alpha arrays (nAlphaArray)
1164 and delfection array (nde) */
1165 uiuc_2DdataFileReader(tactilefadef_file,
1171 d_2_to_3(datafile_xArray, tactilefadef_aArray, tactilefadef_index);
1172 d_1_to_2(datafile_yArray, tactilefadef_deArray, tactilefadef_index);
1173 d_2_to_3(datafile_zArray, tactilefadef_tactileArray, tactilefadef_index);
1174 i_1_to_2(datafile_nxArray, tactilefadef_nAlphaArray, tactilefadef_index);
1175 tactilefadef_nde[tactilefadef_index] = datafile_ny;
1176 if (tactilefadef_first==true)
1178 if (tactilefadef_nice == 1)
1180 tactilefadef_na_nice = datafile_nxArray[1];
1181 tactilefadef_nde_nice = datafile_ny;
1182 d_1_to_1(datafile_yArray, tactilefadef_deArray_nice);
1183 for (i=1; i<=tactilefadef_na_nice; i++)
1184 tactilefadef_aArray_nice[i] = datafile_xArray[1][i];
1186 tactilefadef_first=false;
1190 case tactile_pitch_flag:
1195 case demo_tactile_flag:
1197 demo_tactile = true;
1198 demo_tactile_file = aircraft_directory + linetoken3;
1199 token4 >> token_value_convert1;
1200 token5 >> token_value_convert2;
1201 convert_y = uiuc_convert(token_value_convert1);
1202 convert_x = uiuc_convert(token_value_convert2);
1203 uiuc_1DdataFileReader(demo_tactile_file,
1204 demo_tactile_timeArray,
1205 demo_tactile_daArray,
1206 demo_tactile_ntime);
1207 token6 >> token_value;
1208 demo_tactile_startTime = token_value;
1211 case demo_ice_tail_flag:
1213 demo_ice_tail = true;
1214 demo_ice_tail_file = aircraft_directory + linetoken3;
1215 token4 >> token_value_convert1;
1216 token5 >> token_value_convert2;
1217 convert_y = uiuc_convert(token_value_convert1);
1218 convert_x = uiuc_convert(token_value_convert2);
1219 uiuc_1DdataFileReader(demo_ice_tail_file,
1220 demo_ice_tail_timeArray,
1221 demo_ice_tail_daArray,
1222 demo_ice_tail_ntime);
1223 token6 >> token_value;
1224 demo_ice_tail_startTime = token_value;
1227 case demo_ice_left_flag:
1229 demo_ice_left = true;
1230 demo_ice_left_file = aircraft_directory + linetoken3;
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 uiuc_1DdataFileReader(demo_ice_left_file,
1236 demo_ice_left_timeArray,
1237 demo_ice_left_daArray,
1238 demo_ice_left_ntime);
1239 token6 >> token_value;
1240 demo_ice_left_startTime = token_value;
1243 case demo_ice_right_flag:
1245 demo_ice_right = true;
1246 demo_ice_right_file = aircraft_directory + linetoken3;
1247 token4 >> token_value_convert1;
1248 token5 >> token_value_convert2;
1249 convert_y = uiuc_convert(token_value_convert1);
1250 convert_x = uiuc_convert(token_value_convert2);
1251 uiuc_1DdataFileReader(demo_ice_right_file,
1252 demo_ice_right_timeArray,
1253 demo_ice_right_daArray,
1254 demo_ice_right_ntime);
1255 token6 >> token_value;
1256 demo_ice_right_startTime = token_value;
1261 if (ignore_unknown_keywords) {
1264 // print error message
1265 uiuc_warnings_errors(2, *command_line);