]> git.mxchange.org Git - flightgear.git/blob - src/FDM/UIUCModel/uiuc_recorder.cpp
Includes mods to greatly shorten the uiuc_recorder.cpp code.
[flightgear.git] / src / FDM / UIUCModel / uiuc_recorder.cpp
1 /**********************************************************************
2  
3  FILENAME:     uiuc_recorder.cpp
4
5 ----------------------------------------------------------------------
6
7  DESCRIPTION:  outputs variables specified in input file to recorder 
8                file
9
10 ----------------------------------------------------------------------
11
12  STATUS:       alpha version
13
14 ----------------------------------------------------------------------
15
16  REFERENCES:   Liberty, Jesse.  "Sam's Teach Yourself C++ in 21 Days,"
17                3rd ed., 1999.
18
19 ----------------------------------------------------------------------
20
21  HISTORY:      01/31/2000   initial release
22                03/02/2000   (JS) added record options for 1D and 2D 
23                             interpolated variables
24                04/01/2000   (JS) added throttle, longitudinal, lateral, 
25                             and rudder inputs to record map
26                04/24/2000   (JS) added rest of variables in 
27                             ls_generic.h
28                07/06/2001   (RD) changed Flap handle output
29                07/20/2001   (RD) fixed Lat_control and Rudder_pedal
30                10/25/2001   (RD) Added new variables needed for the non-
31                             linear Twin Otter model at zero flaps
32                             (Cxfxxf0I)
33                11/12/2001   (RD) Added new variables needed for the non-
34                             linear Twin Otter model at zero flaps
35                             (CxfxxfI).  Removed zero flap variables.
36                             Added flap_pos and flap_cmd_deg.
37                02/13/2002   (RD) Added variables so linear aero model
38                             values can be recorded
39                03/03/2003   (RD) Added flap_cmd_record
40                03/16/2003   (RD) Added trigger record variables
41                07/17/2003   (RD) Added error checking code (default
42                             routine) since it was removed from
43                             uiuc_menu_record()
44
45 ----------------------------------------------------------------------
46
47  AUTHOR(S):    Jeff Scott         http://www.jeffscott.net/
48                Robert Deters      <rdeters@uiuc.edu>
49                Michael Selig      <m-selig@uiuc.edu>
50 ----------------------------------------------------------------------
51
52  VARIABLES:
53
54 ----------------------------------------------------------------------
55
56  INPUTS:       n/a
57
58 ----------------------------------------------------------------------
59
60  OUTPUTS:      -variables recorded in uiuc_recorder.dat
61
62 ----------------------------------------------------------------------
63
64  CALLED BY:   uiuc_wrapper.cpp 
65
66 ----------------------------------------------------------------------
67
68  CALLS TO:     none
69
70 ----------------------------------------------------------------------
71
72  COPYRIGHT:    (C) 2000 by Michael Selig
73
74  This program is free software; you can redistribute it and/or
75  modify it under the terms of the GNU General Public License
76  as published by the Free Software Foundation.
77
78  This program is distributed in the hope that it will be useful,
79  but WITHOUT ANY WARRANTY; without even the implied warranty of
80  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
81  GNU General Public License for more details.
82
83  You should have received a copy of the GNU General Public License
84  along with this program; if not, write to the Free Software
85  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
86  USA or view http://www.gnu.org/copyleft/gpl.html.
87
88 **********************************************************************/
89
90 #ifdef HAVE_CONFIG_H
91 #  include <config.h>
92 #endif
93
94 #include <simgear/compiler.h>
95 #include <simgear/misc/sg_path.hxx>
96 #include <Aircraft/aircraft.hxx>
97 #include <Main/fg_props.hxx>
98
99 #include "uiuc_recorder.h"
100
101 SG_USING_STD(endl);             // -dw
102
103 void uiuc_recorder( double dt )
104 {
105   stack command_list;
106   string linetoken;
107   static int init = 0;
108   static int recordStep = 0;
109   string record_variables = "# ";
110
111   int modulus = recordStep % recordRate;
112
113   if ((recordStep % recordRate) == 0)
114     {
115       command_list = recordParts->getCommands();
116       fout << endl;
117
118       LIST command_line;
119       for (command_line = command_list.begin(); command_line!=command_list.end(); ++command_line)
120         record_variables += recordParts->getToken(*command_line,2) + "  ";
121
122       fout << record_variables << endl; 
123       for (command_line = command_list.begin(); command_line!=command_list.end(); ++command_line)
124         {
125           linetoken = recordParts->getToken(*command_line, 2); 
126
127           switch(record_map[linetoken])
128             {
129               /************************* Time ************************/
130             case Simtime_record:
131               {
132                 fout << Simtime << " ";
133                 break;
134               }
135             case dt_record:
136               {
137                 fout << dt << " ";
138                 break;
139               }
140
141               /************************* Mass ************************/
142             case Weight_record:
143               {
144                 fout << Weight << " ";
145                 break;
146               }
147             case Mass_record:
148               {
149                 fout << Mass << " ";
150                 break;
151               }
152             case I_xx_record:
153               {
154                 fout << I_xx << " ";
155                 break;
156               }
157             case I_yy_record:
158               {
159                 fout << I_yy << " ";
160                 break;
161               }
162             case I_zz_record:
163               {
164                 fout << I_zz << " ";
165                 break;
166               }
167             case I_xz_record:
168               {
169                 fout << I_xz << " ";
170                 break;
171               }
172
173               /*********************** Geometry **********************/
174             case Dx_pilot_record:
175               {
176                 fout << Dx_pilot << " ";
177                 break;
178               }
179             case Dy_pilot_record:
180               {
181                 fout << Dy_pilot << " ";
182                 break;
183               }
184             case Dz_pilot_record:
185               {
186                 fout << Dz_pilot << " ";
187                 break;
188               }
189             case Dx_cg_record:
190               {
191                 fout << Dx_cg << " ";
192                 break;
193               }
194             case Dy_cg_record:
195               {
196                 fout << Dy_cg << " ";
197                 break;
198               }
199             case Dz_cg_record:
200               {
201                 fout << Dz_cg << " ";
202                 break;
203               }
204
205               /********************** Positions **********************/
206             case Lat_geocentric_record:
207               {
208                 fout << Lat_geocentric << " ";
209                 break;
210               }
211             case Lon_geocentric_record:
212               {
213                 fout << Lon_geocentric << " ";
214                 break;
215               }
216             case Radius_to_vehicle_record:
217               {
218                 fout << Radius_to_vehicle << " ";
219                 break;
220               }
221             case Latitude_record:
222               {
223                 fout << Latitude << " ";
224                 break;
225               }
226             case Longitude_record:
227               {
228                 fout << Longitude << " ";
229                 break;
230               }
231             case Altitude_record:
232               {
233                 fout << Altitude << " ";
234                 break;
235               }
236             case Phi_record:
237               {
238                 fout << Phi << " ";
239                 break;
240               }
241             case Theta_record:
242               {
243                 fout << Theta << " ";
244                 break;
245               }
246             case Psi_record:
247               {
248                 fout << Psi << " ";
249                 break;
250               }
251
252               /******************** Accelerations ********************/
253             case V_dot_north_record:
254               {
255                 fout << V_dot_north << " ";
256                 break;
257               }
258             case V_dot_east_record:
259               {
260                 fout << V_dot_east << " ";
261                 break;
262               }
263             case V_dot_down_record:
264               {
265                 fout << V_dot_down << " ";
266                 break;
267               }
268             case U_dot_body_record:
269               {
270                 fout << U_dot_body << " ";
271                 break;
272               }
273             case V_dot_body_record:
274               {
275                 fout << V_dot_body << " ";
276                 break;
277               }
278             case W_dot_body_record:
279               {
280                 fout << W_dot_body << " ";
281                 break;
282               }
283             case A_X_pilot_record:
284               {
285                 fout << A_X_pilot << " ";
286                 break;
287               }
288             case A_Y_pilot_record:
289               {
290                 fout << A_Y_pilot << " ";
291                 break;
292               }
293             case A_Z_pilot_record:
294               {
295                 fout << A_Z_pilot << " ";
296                 break;
297               }
298             case A_X_cg_record:
299               {
300                 fout << A_X_cg << " ";
301                 break;
302               }
303             case A_Y_cg_record:
304               {
305                 fout << A_Y_cg << " ";
306                 break;
307               }
308             case A_Z_cg_record:
309               {
310                 fout << A_Z_cg << " ";
311                 break;
312               }
313             case N_X_pilot_record:
314               {
315                 fout << N_X_pilot << " ";
316                 break;
317               }
318             case N_Y_pilot_record:
319               {
320                 fout << N_Y_pilot << " ";
321                 break;
322               }
323             case N_Z_pilot_record:
324               {
325                 fout << N_Z_pilot << " ";
326                 break;
327               }
328             case N_X_cg_record:
329               {
330                 fout << N_X_cg << " ";
331                 break;
332               }
333             case N_Y_cg_record:
334               {
335                 fout << N_Y_cg << " ";
336                 break;
337               }
338             case N_Z_cg_record:
339               {
340                 fout << N_Z_cg << " ";
341                 break;
342               }
343             case P_dot_body_record:
344               {
345                 fout << P_dot_body << " ";
346                 break;
347               }
348             case Q_dot_body_record:
349               {
350                 fout << Q_dot_body << " ";
351                 break;
352               }
353             case R_dot_body_record:
354               {
355                 fout << R_dot_body << " ";
356                 break;
357               }
358
359               /********************** Velocities *********************/
360             case V_north_record:
361               {
362                 fout << V_north << " ";
363                 break;
364               }
365             case V_east_record:
366               {
367                 fout << V_east << " ";
368                 break;
369               }
370             case V_down_record:
371               {
372                 fout << V_down << " ";
373                 break;
374               }
375             case V_north_rel_ground_record:
376               {
377                 fout << V_north_rel_ground << " ";
378                 break;
379               }
380             case V_east_rel_ground_record:
381               {
382                 fout << V_east_rel_ground << " ";
383                 break;
384               }
385             case V_down_rel_ground_record:
386               {
387                 fout << V_down_rel_ground << " ";
388                 break;
389               }
390             case V_north_airmass_record:
391               {
392                 fout << V_north_airmass << " ";
393                 break;
394               }
395             case V_east_airmass_record:
396               {
397                 fout << V_east_airmass << " ";
398                 break;
399               }
400             case V_down_airmass_record:
401               {
402                 fout << V_down_airmass << " ";
403                 break;
404               }
405             case V_north_rel_airmass_record:
406               {
407                 fout << V_north_rel_airmass << " ";
408                 break;
409               }
410             case V_east_rel_airmass_record:
411               {
412                 fout << V_east_rel_airmass << " ";
413                 break;
414               }
415             case V_down_rel_airmass_record:
416               {
417                 fout << V_down_rel_airmass << " ";
418                 break;
419               }
420             case U_gust_record:
421               {
422                 fout << U_gust << " ";
423                 break;
424               }
425             case V_gust_record:
426               {
427                 fout << V_gust << " ";
428                 break;
429               }
430             case W_gust_record:
431               {
432                 fout << W_gust << " ";
433                 break;
434               }
435             case U_body_record:
436               {
437                 fout << U_body << " ";
438                 break;
439               }
440             case V_body_record:
441               {
442                 fout << V_body << " ";
443                 break;
444               }
445             case W_body_record:
446               {
447                 fout << W_body << " ";
448                 break;
449               }
450             case V_rel_wind_record:
451               {
452                 fout << V_rel_wind << " ";
453                 break;
454               }
455             case V_true_kts_record:
456               {
457                 fout << V_true_kts << " ";
458                 break;
459               }
460             case V_rel_ground_record:
461               {
462                 fout << V_rel_ground << " ";
463                 break;
464               }
465             case V_inertial_record:
466               {
467                 fout << V_inertial << " ";
468                 break;
469               }
470             case V_ground_speed_record:
471               {
472                 fout << V_ground_speed << " ";
473                 break;
474               }
475             case V_equiv_record:
476               {
477                 fout << V_equiv << " ";
478                 break;
479               }
480             case V_equiv_kts_record:
481               {
482                 fout << V_equiv_kts << " ";
483                 break;
484               }
485             case V_calibrated_record:
486               {
487                 fout << V_calibrated << " ";
488                 break;
489               }
490             case V_calibrated_kts_record:
491               {
492                 fout << V_calibrated_kts << " ";
493                 break;
494               }
495             case P_local_record:
496               {
497                 fout << P_local << " ";
498                 break;
499               }
500             case Q_local_record:
501               {
502                 fout << Q_local << " ";
503                 break;
504               }
505             case R_local_record:
506               {
507                 fout << R_local << " ";
508                 break;
509               }
510             case P_body_record:
511               {
512                 fout << P_body << " ";
513                 break;
514               }
515             case Q_body_record:
516               {
517                 fout << Q_body << " ";
518                 break;
519               }
520             case R_body_record:
521               {
522                 fout << R_body << " ";
523                 break;
524               }
525             case P_total_record:
526               {
527                 fout << P_total << " ";
528                 break;
529               }
530             case Q_total_record:
531               {
532                 fout << Q_total << " ";
533                 break;
534               }
535             case R_total_record:
536               {
537                 fout << R_total << " ";
538                 break;
539               }
540             case Phi_dot_record:
541               {
542                 fout << Phi_dot << " ";
543                 break;
544               }
545             case Theta_dot_record:
546               {
547                 fout << Theta_dot << " ";
548                 break;
549               }
550             case Psi_dot_record:
551               {
552                 fout << Psi_dot << " ";
553                 break;
554               }
555             case Latitude_dot_record:
556               {
557                 fout << Latitude_dot << " ";
558                 break;
559               }
560             case Longitude_dot_record:
561               {
562                 fout << Longitude_dot << " ";
563                 break;
564               }
565             case Radius_dot_record:
566               {
567                 fout << Radius_dot << " ";
568                 break;
569               }
570
571               /************************ Angles ***********************/
572             case Alpha_record:
573               {
574                 fout << Std_Alpha << " ";
575                 break;
576               }
577             case Alpha_deg_record:
578               {
579                 fout << Std_Alpha * RAD_TO_DEG << " ";
580                 break;
581               }
582             case Alpha_dot_record:
583               {
584                 fout << Std_Alpha_dot << " ";
585                 break;
586               }
587             case Alpha_dot_deg_record:
588               {
589                 fout << Std_Alpha_dot * RAD_TO_DEG << " ";
590                 break;
591               }
592             case Beta_record:
593               {
594                 fout << Std_Beta << " ";
595                 break;
596               }
597             case Beta_deg_record:
598               {
599                 fout << Std_Beta * RAD_TO_DEG << " ";
600                 break;
601               }
602             case Beta_dot_record:
603               {
604                 fout << Std_Beta_dot << " ";
605                 break;
606               }
607             case Beta_dot_deg_record:
608               {
609                 fout << Std_Beta_dot * RAD_TO_DEG << " ";
610                 break;
611               }
612             case Gamma_vert_record:
613               {
614                 fout << Gamma_vert_rad << " ";
615                 break;
616               }
617             case Gamma_vert_deg_record:
618               {
619                 fout << Gamma_vert_rad * RAD_TO_DEG << " ";
620                 break;
621               }
622             case Gamma_horiz_record:
623               {
624                 fout << Gamma_horiz_rad << " ";
625                 break;
626               }
627             case Gamma_horiz_deg_record:
628               {
629                 fout << Gamma_horiz_rad * RAD_TO_DEG << " ";
630                 break;
631               }
632
633               /**************** Atmospheric Properties ***************/
634             case Density_record:
635               {
636                 fout << Density << " ";
637                 break;
638               }
639             case V_sound_record:
640               {
641                 fout << V_sound << " ";
642                 break;
643               }
644             case Mach_number_record:
645               {
646                 fout << Mach_number << " ";
647                 break;
648               }
649             case Static_pressure_record:
650               {
651                 fout << Static_pressure << " ";
652                 break;
653               }
654             case Total_pressure_record:
655               {
656                 fout << Total_pressure << " ";
657                 break;
658               }
659             case Impact_pressure_record:
660               {
661                 fout << Impact_pressure << " ";
662                 break;
663               }
664             case Dynamic_pressure_record:
665               {
666                 fout << Dynamic_pressure << " ";
667                 break;
668               }
669             case Static_temperature_record:
670               {
671                 fout << Static_temperature << " ";
672                 break;
673               }
674             case Total_temperature_record:
675               {
676                 fout << Total_temperature << " ";
677                 break;
678               }
679
680               /******************** Earth Properties *****************/
681             case Gravity_record:
682               {
683                 fout << Gravity << " ";
684                 break;
685               }
686             case Sea_level_radius_record:
687               {
688                 fout << Sea_level_radius << " ";
689                 break;
690               }
691             case Earth_position_angle_record:
692               {
693                 fout << Earth_position_angle << " ";
694                 break;
695               }
696             case Runway_altitude_record:
697               {
698                 fout << Runway_altitude << " ";
699                 break;
700               }
701             case Runway_latitude_record:
702               {
703                 fout << Runway_latitude << " ";
704                 break;
705               }
706             case Runway_longitude_record:
707               {
708                 fout << Runway_longitude << " ";
709                 break;
710               }
711             case Runway_heading_record:
712               {
713                 fout << Runway_heading << " ";
714                 break;
715               }
716             case Radius_to_rwy_record:
717               {
718                 fout << Radius_to_rwy << " ";
719                 break;
720               }
721             case D_pilot_north_of_rwy_record:
722               {
723                 fout << D_pilot_north_of_rwy << " ";
724                 break;
725               }
726             case D_pilot_east_of_rwy_record:
727               {
728                 fout << D_pilot_east_of_rwy << " ";
729                 break;
730               }
731             case D_pilot_above_rwy_record:
732               {
733                 fout << D_pilot_above_rwy << " ";
734                 break;
735               }
736             case X_pilot_rwy_record:
737               {
738                 fout << X_pilot_rwy << " ";
739                 break;
740               }
741             case Y_pilot_rwy_record:
742               {
743                 fout << Y_pilot_rwy << " ";
744                 break;
745               }
746             case H_pilot_rwy_record:
747               {
748                 fout << H_pilot_rwy << " ";
749                 break;
750               }
751             case D_cg_north_of_rwy_record:
752               {
753                 fout << D_cg_north_of_rwy << " ";
754                 break;
755               }
756             case D_cg_east_of_rwy_record:
757               {
758                 fout << D_cg_east_of_rwy << " ";
759                 break;
760               }
761             case D_cg_above_rwy_record:
762               {
763                 fout << D_cg_above_rwy << " ";
764                 break;
765               }
766             case X_cg_rwy_record:
767               {
768                 fout << X_cg_rwy << " ";
769                 break;
770               }
771             case Y_cg_rwy_record:
772               {
773                 fout << Y_cg_rwy << " ";
774                 break;
775               }
776             case H_cg_rwy_record:
777               {
778                 fout << H_cg_rwy << " ";
779                 break;
780               }
781
782               /********************* Engine Inputs *******************/
783             case Throttle_3_record:
784               {
785                 fout << Throttle[3] << " ";
786                 break;
787               }
788             case Throttle_pct_record:
789               {
790                 fout << Throttle_pct << " ";
791                 break;
792               }
793
794               /************************ Controls ***********************/
795             case Long_control_record:
796               {
797                 fout << Long_control << " ";
798                 break;
799               }
800             case Long_trim_record:
801               {
802                 fout << Long_trim << " ";
803                 break;
804               }
805             case Long_trim_deg_record:
806               {
807                 fout << Long_trim * RAD_TO_DEG << " ";
808                 break;
809               }
810             case elevator_record:
811               {
812                 fout << elevator << " ";
813                 break;
814               }
815             case elevator_deg_record:
816               {
817                 fout << elevator * RAD_TO_DEG << " ";
818                 break;
819               }
820             case Lat_control_record:
821               {
822                 fout << Lat_control << " ";
823                 break;
824               }
825             case aileron_record:
826               {
827                 fout << aileron << " ";
828                 break;
829               }
830             case aileron_deg_record:
831               {
832                 fout << aileron * RAD_TO_DEG << " ";
833                 break;
834               }
835             case Rudder_pedal_record:
836               {
837                 fout << Rudder_pedal << " ";
838                 break;
839               }
840             case rudder_record:
841               {
842                 fout << rudder << " ";
843                 break;
844               }
845             case rudder_deg_record:
846               {
847                 fout << rudder * RAD_TO_DEG << " ";
848                 break;
849               }
850             case Flap_handle_record:
851               {
852                 fout << Flap_handle << " ";
853                 break;
854               }
855             case flap_record:
856               {
857                 fout << flap << " ";
858                 break;
859               }
860             case flap_cmd_record:
861               {
862                 fout << flap_cmd << " ";
863                 break;
864               }
865             case flap_cmd_deg_record:
866               {
867                 fout << flap_cmd * RAD_TO_DEG << " ";
868                 break;
869               }
870             case flap_pos_record:
871               {
872                 fout << flap_pos << " ";
873                 break;
874               }
875             case flap_pos_deg_record:
876               {
877                 fout << flap_pos * RAD_TO_DEG << " ";
878                 break;
879               }
880             case Spoiler_handle_record:
881               {
882                 fout << Spoiler_handle << " ";
883                 break;
884               }
885             case spoiler_cmd_deg_record:
886               {
887                 fout << spoiler_cmd_deg << " ";
888                 break;
889               }
890             case spoiler_pos_deg_record:
891               {
892                 fout << spoiler_pos_deg << " ";
893                 break;
894               }
895             case spoiler_pos_norm_record:
896               {
897                 fout << spoiler_pos_norm << " ";
898                 break;
899               }
900             case spoiler_pos_record:
901               {
902                 fout << spoiler_pos << " ";
903                 break;
904               }
905
906               /****************** Aero Coefficients ******************/
907             case CD_record:
908               {
909                 fout << CD << " ";
910                 break;
911               }
912             case CDfaI_record:
913               {
914                 fout << CDfaI << " ";
915                 break;
916               }
917             case CDfCLI_record:
918               {
919                 fout << CDfCLI << " ";
920                 break;
921               }
922             case CDfadeI_record:
923               {
924                 fout << CDfadeI << " ";
925                 break;
926               }
927             case CDfdfI_record:
928               {
929                 fout << CDfdfI << " ";
930                 break;
931               }
932             case CDfadfI_record:
933               {
934                 fout << CDfadfI << " ";
935                 break;
936               }
937             case CX_record:
938               {
939                 fout << CX << " ";
940                 break;
941               }
942             case CXfabetafI_record:
943               {
944                 fout << CXfabetafI << " ";
945                 break;
946               }
947             case CXfadefI_record:
948               {
949                 fout << CXfadefI << " ";
950                 break;
951               }
952             case CXfaqfI_record:
953               {
954                 fout << CXfaqfI << " ";
955                 break;
956               }
957             case CDo_save_record:
958               {
959                 fout << CDo_save << " ";
960                 break;
961               }
962             case CDK_save_record:
963               {
964                 fout << CDK_save << " ";
965                 break;
966               }
967             case CLK_save_record:
968               {
969                 fout << CLK_save << " ";
970                 break;
971               }
972             case CD_a_save_record:
973               {
974                 fout << CD_a_save << " ";
975                 break;
976               }
977             case CD_adot_save_record:
978               {
979                 fout << CD_adot_save << " ";
980                 break;
981               }
982             case CD_q_save_record:
983               {
984                 fout << CD_q_save << " ";
985                 break;
986               }
987             case CD_ih_save_record:
988               {
989                 fout << CD_ih_save << " ";
990                 break;
991               }
992             case CD_de_save_record:
993               {
994                 fout << CD_de_save << " ";
995                 break;
996               }
997             case CD_dr_save_record:
998               {
999                 fout << CD_dr_save << " ";
1000                 break;
1001               }
1002             case CD_da_save_record:
1003               {
1004                 fout << CD_da_save << " ";
1005                 break;
1006               }
1007             case CD_beta_save_record:
1008               {
1009                 fout << CD_beta_save << " ";
1010                 break;
1011               }
1012             case CD_df_save_record:
1013               {
1014                 fout << CD_df_save << " ";
1015                 break;
1016               }
1017             case CD_ds_save_record:
1018               {
1019                 fout << CD_ds_save << " ";
1020                 break;
1021               }
1022             case CD_dg_save_record:
1023               {
1024                 fout << CD_dg_save << " ";
1025                 break;
1026               }
1027             case CXo_save_record:
1028               {
1029                 fout << CXo_save << " ";
1030                 break;
1031               }
1032             case CXK_save_record:
1033               {
1034                 fout << CXK_save << " ";
1035                 break;
1036               }
1037             case CX_a_save_record:
1038               {
1039                 fout << CX_a_save << " ";
1040                 break;
1041               }
1042             case CX_a2_save_record:
1043               {
1044                 fout << CX_a2_save << " ";
1045                 break;
1046               }
1047             case CX_a3_save_record:
1048               {
1049                 fout << CX_a3_save << " ";
1050                 break;
1051               }
1052             case CX_adot_save_record:
1053               {
1054                 fout << CX_adot_save << " ";
1055                 break;
1056               }
1057             case CX_q_save_record:
1058               {
1059                 fout << CX_q_save << " ";
1060                 break;
1061               }
1062             case CX_de_save_record:
1063               {
1064                 fout << CX_de_save << " ";
1065                 break;
1066               }
1067             case CX_dr_save_record:
1068               {
1069                 fout << CX_dr_save << " ";
1070                 break;
1071               }
1072             case CX_df_save_record:
1073               {
1074                 fout << CX_df_save << " ";
1075                 break;
1076               }
1077             case CX_adf_save_record:
1078               {
1079                 fout << CX_adf_save << " ";
1080                 break;
1081               }
1082             case CL_record:
1083               {
1084                 fout << CL << " ";
1085                 break;
1086               }
1087             case CLfaI_record:
1088               {
1089                 fout << CLfaI << " ";
1090                 break;
1091               }
1092             case CLfadeI_record:
1093               {
1094                 fout << CLfadeI << " ";
1095                 break;
1096               }
1097             case CLfdfI_record:
1098               {
1099                 fout << CLfdfI << " ";
1100                 break;
1101               }
1102             case CLfadfI_record:
1103               {
1104                 fout << CLfadfI << " ";
1105                 break;
1106               }
1107             case CZ_record:
1108               {
1109                 fout << CZ << " ";
1110                 break;
1111               }
1112             case CZfaI_record:
1113               {
1114                 fout << CZfaI << " ";
1115                 break;
1116               }
1117             case CZfabetafI_record:
1118               {
1119                 fout << CZfabetafI << " ";
1120                 break;
1121               }
1122             case CZfadefI_record:
1123               {
1124                 fout << CZfadefI << " ";
1125                 break;
1126               }
1127             case CZfaqfI_record:
1128               {
1129                 fout << CZfaqfI << " ";
1130                 break;
1131               }
1132             case CLo_save_record:
1133               {
1134                 fout << CLo_save << " ";
1135                 break;
1136               }
1137             case CL_a_save_record:
1138               {
1139                 fout << CL_a_save << " ";
1140                 break;
1141               }
1142             case CL_adot_save_record:
1143               {
1144                 fout << CL_adot_save << " ";
1145                 break;
1146               }
1147             case CL_q_save_record:
1148               {
1149                 fout << CL_q_save << " ";
1150                 break;
1151               }
1152             case CL_ih_save_record:
1153               {
1154                 fout << CL_ih_save << " ";
1155                 break;
1156               }
1157             case CL_de_save_record:
1158               {
1159                 fout << CL_de_save << " ";
1160                 break;
1161               }
1162             case CL_df_save_record:
1163               {
1164                 fout << CL_df_save << " ";
1165                 break;
1166               }
1167             case CL_ds_save_record:
1168               {
1169                 fout << CL_ds_save << " ";
1170                 break;
1171               }
1172             case CL_dg_save_record:
1173               {
1174                 fout << CL_dg_save << " ";
1175                 break;
1176               }
1177             case CZo_save_record:
1178               {
1179                 fout << CZo_save << " ";
1180                 break;
1181               }
1182             case CZ_a_save_record:
1183               {
1184                 fout << CZ_a_save << " ";
1185                 break;
1186               }
1187             case CZ_a2_save_record:
1188               {
1189                 fout << CZ_a2_save << " ";
1190                 break;
1191               }
1192             case CZ_a3_save_record:
1193               {
1194                 fout << CZ_a3_save << " ";
1195                 break;
1196               }
1197             case CZ_adot_save_record:
1198               {
1199                 fout << CZ_adot_save << " ";
1200                 break;
1201               }
1202             case CZ_q_save_record:
1203               {
1204                 fout << CZ_q_save << " ";
1205                 break;
1206               }
1207             case CZ_de_save_record:
1208               {
1209                 fout << CZ_de_save << " ";
1210                 break;
1211               }
1212             case CZ_deb2_save_record:
1213               {
1214                 fout << CZ_deb2_save << " ";
1215                 break;
1216               }
1217             case CZ_df_save_record:
1218               {
1219                 fout << CZ_df_save << " ";
1220                 break;
1221               }
1222             case CZ_adf_save_record:
1223               {
1224                 fout << CZ_adf_save << " ";
1225                 break;
1226               }
1227             case Cm_record:
1228               {
1229                 fout << Cm << " ";
1230                 break;
1231               }
1232             case CmfaI_record:
1233               {
1234                 fout << CmfaI << " ";
1235                 break;
1236               }
1237             case CmfadeI_record:
1238               {
1239                 fout << CmfadeI << " ";
1240                 break;
1241               }
1242             case CmfdfI_record:
1243               {
1244                 fout << CmfdfI << " ";
1245                 break;
1246               }
1247             case CmfadfI_record:
1248               {
1249                 fout << CmfadfI << " ";
1250                 break;
1251               }
1252             case CmfabetafI_record:
1253               {
1254                 fout << CmfabetafI << " ";
1255                 break;
1256               }
1257             case CmfadefI_record:
1258               {
1259                 fout << CmfadefI << " ";
1260                 break;
1261               }
1262             case CmfaqfI_record:
1263               {
1264                 fout << CmfaqfI << " ";
1265                 break;
1266               }
1267             case Cmo_save_record:
1268               {
1269                 fout << Cmo_save << " ";
1270                 break;
1271               }
1272             case Cm_a_save_record:
1273               {
1274                 fout << Cm_a_save << " ";
1275                 break;
1276               }
1277             case Cm_a2_save_record:
1278               {
1279                 fout << Cm_a2_save << " ";
1280                 break;
1281               }
1282             case Cm_adot_save_record:
1283               {
1284                 fout << Cm_adot_save << " ";
1285                 break;
1286               }
1287             case Cm_q_save_record:
1288               {
1289                 fout << Cm_q_save << " ";
1290                 break;
1291               }
1292             case Cm_ih_save_record:
1293               {
1294                 fout << Cm_ih_save << " ";
1295                 break;
1296               }
1297             case Cm_de_save_record:
1298               {
1299                 fout << Cm_de_save << " ";
1300                 break;
1301               }
1302             case Cm_b2_save_record:
1303               {
1304                 fout << Cm_b2_save << " ";
1305                 break;
1306               }
1307             case Cm_r_save_record:
1308               {
1309                 fout << Cm_r_save << " ";
1310                 break;
1311               }
1312             case Cm_df_save_record:
1313               {
1314                 fout << Cm_df_save << " ";
1315                 break;
1316               }
1317             case Cm_ds_save_record:
1318               {
1319                 fout << Cm_ds_save << " ";
1320                 break;
1321               }
1322             case Cm_dg_save_record:
1323               {
1324                 fout << Cm_dg_save << " ";
1325                 break;
1326               }
1327             case CY_record:
1328               {
1329                 fout << CY  << " ";
1330                 break;
1331               }
1332             case CYfadaI_record:
1333               {
1334                 fout << CYfadaI << " ";
1335                 break;
1336               }
1337             case CYfbetadrI_record:
1338               {
1339                 fout << CYfbetadrI << " ";
1340                 break;
1341               }
1342             case CYfabetafI_record:
1343               {
1344                 fout << CYfabetafI << " ";
1345                 break;
1346               }
1347             case CYfadafI_record:
1348               {
1349                 fout << CYfadafI << " ";
1350                 break;
1351               }
1352             case CYfadrfI_record:
1353               {
1354                 fout << CYfadrfI << " ";
1355                 break;
1356               }
1357             case CYfapfI_record:
1358               {
1359                 fout << CYfapfI << " ";
1360                 break;
1361               }
1362             case CYfarfI_record:
1363               {
1364                 fout << CYfarfI << " ";
1365                 break;
1366               }
1367             case CYo_save_record:
1368               {
1369                 fout << CYo_save << " ";
1370                 break;
1371               }
1372             case CY_beta_save_record:
1373               {
1374                 fout << CY_beta_save << " ";
1375                 break;
1376               }
1377             case CY_p_save_record:
1378               {
1379                 fout << CY_p_save << " ";
1380                 break;
1381               }
1382             case CY_r_save_record:
1383               {
1384                 fout << CY_r_save << " ";
1385                 break;
1386               }
1387             case CY_da_save_record:
1388               {
1389                 fout << CY_da_save << " ";
1390                 break;
1391               }
1392             case CY_dr_save_record:
1393               {
1394                 fout << CY_dr_save << " ";
1395                 break;
1396               }
1397             case CY_dra_save_record:
1398               {
1399                 fout << CY_dra_save << " ";
1400                 break;
1401               }
1402             case CY_bdot_save_record:
1403               {
1404                 fout << CY_bdot_save << " ";
1405                 break;
1406               }
1407             case Cl_record:
1408               {
1409                 fout << Cl << " ";
1410                 break;
1411               }
1412             case ClfadaI_record:
1413               {
1414                 fout << ClfadaI << " ";
1415                 break;
1416               }
1417             case ClfbetadrI_record:
1418               {
1419                 fout << ClfbetadrI << " ";
1420                 break;
1421               }
1422             case ClfabetafI_record:
1423               {
1424                 fout << ClfabetafI << " ";
1425                 break;
1426               }
1427             case ClfadafI_record:
1428               {
1429                 fout << ClfadafI << " ";
1430                 break;
1431               }
1432             case ClfadrfI_record:
1433               {
1434                 fout << ClfadrfI << " ";
1435                 break;
1436               }
1437             case ClfapfI_record:
1438               {
1439                 fout << ClfapfI << " ";
1440                 break;
1441               }
1442             case ClfarfI_record:
1443               {
1444                 fout << ClfarfI << " ";
1445                 break;
1446               }
1447             case Clo_save_record:
1448               {
1449                 fout << Clo_save << " ";
1450                 break;
1451               }
1452             case Cl_beta_save_record:
1453               {
1454                 fout << Cl_beta_save << " ";
1455                 break;
1456               }
1457             case Cl_p_save_record:
1458               {
1459                 fout << Cl_p_save << " ";
1460                 break;
1461               }
1462             case Cl_r_save_record:
1463               {
1464                 fout << Cl_r_save << " ";
1465                 break;
1466               }
1467             case Cl_da_save_record:
1468               {
1469                 fout << Cl_da_save << " ";
1470                 break;
1471               }
1472             case Cl_dr_save_record:
1473               {
1474                 fout << Cl_dr_save << " ";
1475                 break;
1476               }
1477             case Cl_daa_save_record:
1478               {
1479                 fout << Cl_daa_save << " ";
1480                 break;
1481               }
1482             case Cn_record:
1483               {
1484                 fout << Cn << " ";
1485                 break;
1486               }
1487             case CnfadaI_record:
1488               {
1489                 fout << CnfadaI << " ";
1490                 break;
1491               }
1492             case CnfbetadrI_record:
1493               {
1494                 fout << CnfbetadrI << " ";
1495                 break;
1496               }
1497             case CnfabetafI_record:
1498               {
1499                 fout << CnfabetafI << " ";
1500                 break;
1501               }
1502             case CnfadafI_record:
1503               {
1504                 fout << CnfadafI << " ";
1505                 break;
1506               }
1507             case CnfadrfI_record:
1508               {
1509                 fout << CnfadrfI << " ";
1510                 break;
1511               }
1512             case CnfapfI_record:
1513               {
1514                 fout << CnfapfI << " ";
1515                 break;
1516               }
1517             case CnfarfI_record:
1518               {
1519                 fout << CnfarfI << " ";
1520                 break;
1521               }
1522             case Cno_save_record:
1523               {
1524                 fout << Cno_save << " ";
1525                 break;
1526               }
1527             case Cn_beta_save_record:
1528               {
1529                 fout << Cn_beta_save << " ";
1530                 break;
1531               }
1532             case Cn_p_save_record:
1533               {
1534                 fout << Cn_p_save << " ";
1535                 break;
1536               }
1537             case Cn_r_save_record:
1538               {
1539                 fout << Cn_r_save << " ";
1540                 break;
1541               }
1542             case Cn_da_save_record:
1543               {
1544                 fout << Cn_da_save << " ";
1545                 break;
1546               }
1547             case Cn_dr_save_record:
1548               {
1549                 fout << Cn_dr_save << " ";
1550                 break;
1551               }
1552             case Cn_q_save_record:
1553               {
1554                 fout << Cn_q_save << " ";
1555                 break;
1556               }
1557             case Cn_b3_save_record:
1558               {
1559                 fout << Cn_b3_save << " ";
1560                 break;
1561               }
1562
1563               /******************** Ice Detection ********************/
1564             case CL_clean_record:
1565               {
1566                 fout << CL_clean << " ";
1567                 break;
1568               }
1569             case CL_iced_record:
1570               {
1571                 fout << CL_iced << " ";
1572                 break;
1573               }
1574             case CD_clean_record:
1575               {
1576                 fout << CD_clean << " ";
1577                 break;
1578               }
1579             case CD_iced_record:
1580               {
1581                 fout << CD_iced << " ";
1582                 break;
1583               }
1584             case Cm_clean_record:
1585               {
1586                 fout << Cm_clean << " ";
1587                 break;
1588               }
1589             case Cm_iced_record:
1590               {
1591                 fout << Cm_iced << " ";
1592                 break;
1593               }
1594             case Ch_clean_record:
1595               {
1596                 fout << Ch_clean << " ";
1597                 break;
1598               }
1599             case Ch_iced_record:
1600               {
1601                 fout << Ch_iced << " ";
1602                 break;
1603               }
1604             case Cl_clean_record:
1605               {
1606                 fout << Cl_clean << " ";
1607                 break;
1608               }
1609             case Cl_iced_record:
1610               {
1611                 fout << Cl_iced << " ";
1612                 break;
1613               }
1614             case CLclean_wing_record:
1615               {
1616                 fout << CLclean_wing << " ";
1617                 break;
1618               }
1619             case CLiced_wing_record:
1620               {
1621                 fout << CLiced_wing << " ";
1622                 break;
1623               }
1624             case CLclean_tail_record:
1625               {
1626                 fout << CLclean_tail << " ";
1627                 break;
1628               }
1629             case CLiced_tail_record:
1630               {
1631                 fout << CLiced_tail << " ";
1632                 break;
1633               }
1634             case Lift_clean_wing_record:
1635               {
1636                 fout << Lift_clean_wing << " ";
1637                 break;
1638               }
1639             case Lift_iced_wing_record:
1640               {
1641                 fout << Lift_iced_wing << " ";
1642                 break;
1643               }
1644             case Lift_clean_tail_record:
1645               {
1646                 fout << Lift_clean_tail << " ";
1647                 break;
1648               }
1649             case Lift_iced_tail_record:
1650               {
1651                 fout << Lift_iced_tail << " ";
1652                 break;
1653               }
1654             case Gamma_clean_wing_record:
1655               {
1656                 fout << Gamma_clean_wing << " ";
1657                 break;
1658               }
1659             case Gamma_iced_wing_record:
1660               {
1661                 fout << Gamma_iced_wing << " ";
1662                 break;
1663               }
1664             case Gamma_clean_tail_record:
1665               {
1666                 fout << Gamma_clean_tail << " ";
1667                 break;
1668               }
1669             case Gamma_iced_tail_record:
1670               {
1671                 fout << Gamma_iced_tail << " ";
1672                 break;
1673               }
1674             case w_clean_wing_record:
1675               {
1676                 fout << w_clean_wing << " ";
1677                 break;
1678               }
1679             case w_iced_wing_record:
1680               {
1681                 fout << w_iced_wing << " ";
1682                 break;
1683               }
1684             case w_clean_tail_record:
1685               {
1686                 fout << w_clean_tail << " ";
1687                 break;
1688               }
1689             case w_iced_tail_record:
1690               {
1691                 fout << w_iced_tail << " ";
1692                 break;
1693               }
1694             case V_total_clean_wing_record:
1695               {
1696                 fout << V_total_clean_wing << " ";
1697                 break;
1698               }
1699             case V_total_iced_wing_record:
1700               {
1701                 fout << V_total_iced_wing << " ";
1702                 break;
1703               }
1704             case V_total_clean_tail_record:
1705               {
1706                 fout << V_total_clean_tail << " ";
1707                 break;
1708               }
1709             case V_total_iced_tail_record:
1710               {
1711                 fout << V_total_iced_tail << " ";
1712                 break;
1713               }
1714             case beta_flow_clean_wing_record:
1715               {
1716                 fout << beta_flow_clean_wing << " ";
1717                 break;
1718               }
1719             case beta_flow_clean_wing_deg_record:
1720               {
1721                 fout << beta_flow_clean_wing * RAD_TO_DEG << " ";
1722                 break;
1723               }
1724             case beta_flow_iced_wing_record:
1725               {
1726                 fout << beta_flow_iced_wing << " ";
1727                 break;
1728               }
1729             case beta_flow_iced_wing_deg_record:
1730               {
1731                 fout << beta_flow_iced_wing * RAD_TO_DEG << " ";
1732                 break;
1733               }
1734             case beta_flow_clean_tail_record:
1735               {
1736                 fout << beta_flow_clean_tail << " ";
1737                 break;
1738               }
1739             case beta_flow_clean_tail_deg_record:
1740               {
1741                 fout << beta_flow_clean_tail * RAD_TO_DEG << " ";
1742                 break;
1743               }
1744             case beta_flow_iced_tail_record:
1745               {
1746                 fout << beta_flow_iced_tail << " ";
1747                 break;
1748               }
1749             case beta_flow_iced_tail_deg_record:
1750               {
1751                 fout << beta_flow_iced_tail * RAD_TO_DEG << " ";
1752                 break;
1753               }
1754             case Dbeta_flow_wing_record:
1755               {
1756                 fout << Dbeta_flow_wing << " ";
1757                 break;
1758               }
1759             case Dbeta_flow_wing_deg_record:
1760               {
1761                 fout << Dbeta_flow_wing * RAD_TO_DEG << " ";
1762                 break;
1763               }
1764             case Dbeta_flow_tail_record:
1765               {
1766                 fout << Dbeta_flow_tail << " ";
1767                 break;
1768               }
1769             case Dbeta_flow_tail_deg_record:
1770               {
1771                 fout << Dbeta_flow_tail * RAD_TO_DEG << " ";
1772                 break;
1773               }
1774             case pct_beta_flow_wing_record:
1775               {
1776                 fout << pct_beta_flow_wing << " ";
1777                 break;
1778               }
1779             case pct_beta_flow_tail_record:
1780               {
1781                 fout << pct_beta_flow_tail << " ";
1782                 break;
1783               }
1784             case eta_ice_record:
1785               {
1786                 fout << eta_ice << " ";
1787                 break;
1788               }
1789             case eta_wing_left_record:
1790               {
1791                 fout << eta_wing_left << " ";
1792                 break;
1793               }
1794             case eta_wing_right_record:
1795               {
1796                 fout << eta_wing_right << " ";
1797                 break;
1798               }
1799             case eta_tail_record:
1800               {
1801                 fout << eta_tail << " ";
1802                 break;
1803               }
1804             case delta_CL_record:
1805               {
1806                 fout << delta_CL << " ";
1807                 break;
1808               }
1809             case delta_CD_record:
1810               {
1811                 fout << delta_CD << " ";
1812                 break;
1813               }
1814             case delta_Cm_record:
1815               {
1816                 fout << delta_Cm << " ";
1817                 break;
1818               }
1819             case delta_Cl_record:
1820               {
1821                 fout << delta_Cl << " ";
1822                 break;
1823               }
1824             case delta_Cn_record:
1825               {
1826                 fout << delta_Cn << " ";
1827                 break;
1828               }
1829             case boot_cycle_tail_record:
1830               {
1831                 fout << boot_cycle_tail << " ";
1832                 break;
1833               }
1834             case boot_cycle_wing_left_record:
1835               {
1836                 fout << boot_cycle_wing_left << " ";
1837                 break;
1838               }
1839             case boot_cycle_wing_right_record:
1840               {
1841                 fout << boot_cycle_wing_right << " ";
1842                 break;
1843               }
1844             case autoIPS_tail_record:
1845               {
1846                 fout << autoIPS_tail << " ";
1847                 break;
1848               }
1849             case autoIPS_wing_left_record:
1850               {
1851                 fout << autoIPS_wing_left << " ";
1852                 break;
1853               }
1854             case autoIPS_wing_right_record:
1855               {
1856                 fout << autoIPS_wing_right << " ";
1857                 break;
1858               }
1859             case eps_pitch_input_record:
1860               {
1861                 fout << eps_pitch_input << " ";
1862                 break;
1863               }
1864             case eps_alpha_max_record:
1865               {
1866                 fout << eps_alpha_max << " ";
1867                 break;
1868               }
1869             case eps_pitch_max_record:
1870               {
1871                 fout << eps_pitch_max << " ";
1872                 break;
1873               }
1874             case eps_pitch_min_record:
1875               {
1876                 fout << eps_pitch_min << " ";
1877                 break;
1878               }
1879             case eps_roll_max_record:
1880               {
1881                 fout << eps_roll_max << " ";
1882                 break;
1883               }
1884             case eps_thrust_min_record:
1885               {
1886                 fout << eps_thrust_min << " ";
1887                 break;
1888               }
1889             case eps_flap_max_record:
1890               {
1891                 fout << eps_flap_max << " ";
1892                 break;
1893               }
1894             case eps_airspeed_max_record:
1895               {
1896                 fout << eps_airspeed_max << " ";
1897                 break;
1898               }
1899             case eps_airspeed_min_record:
1900               {
1901                 fout << eps_airspeed_min << " ";
1902                 break;
1903               }
1904             case tactilefadefI_record:
1905               {
1906                 fout << tactilefadefI << " ";
1907                 break;
1908               }
1909
1910               /*******************Autopilot***************************/
1911             case ap_Theta_ref_deg_record:
1912               {
1913                 fout << ap_Theta_ref_deg << " ";
1914                 break;
1915               }
1916             case ap_pah_on_record:
1917               {
1918                 fout << ap_pah_on << " ";
1919                 break;
1920               }
1921
1922               /************************ Forces ***********************/
1923             case F_X_wind_record:
1924               {
1925                 fout << F_X_wind << " ";
1926                 break;
1927               }
1928             case F_Y_wind_record:
1929               {
1930                 fout << F_Y_wind << " ";
1931                 break;
1932               }
1933             case F_Z_wind_record:
1934               {
1935                 fout << F_Z_wind << " ";
1936                 break;
1937               }
1938             case F_X_aero_record:
1939               {
1940                 fout << F_X_aero << " ";
1941                 break;
1942               }
1943             case F_Y_aero_record:
1944               {
1945                 fout << F_Y_aero << " ";
1946                 break;
1947               }
1948             case F_Z_aero_record:
1949               {
1950                 fout << F_Z_aero << " ";
1951                 break;
1952               }
1953             case F_X_engine_record:
1954               {
1955                 fout << F_X_engine << " ";
1956                 break;
1957               }
1958             case F_Y_engine_record:
1959               {
1960                 fout << F_Y_engine << " ";
1961                 break;
1962               }
1963             case F_Z_engine_record:
1964               {
1965                 fout << F_Z_engine << " ";
1966                 break;
1967               }
1968             case F_X_gear_record:
1969               {
1970                 fout << F_X_gear << " ";
1971                 break;
1972               }
1973             case F_Y_gear_record:
1974               {
1975                 fout << F_Y_gear << " ";
1976                 break;
1977               }
1978             case F_Z_gear_record:
1979               {
1980                 fout << F_Z_gear << " ";
1981                 break;
1982               }
1983             case F_X_record:
1984               {
1985                 fout << F_X << " ";
1986                 break;
1987               }
1988             case F_Y_record:
1989               {
1990                 fout << F_Y << " ";
1991                 break;
1992               }
1993             case F_Z_record:
1994               {
1995                 fout << F_Z << " ";
1996                 break;
1997               }
1998             case F_north_record:
1999               {
2000                 fout << F_north << " ";
2001                 break;
2002               }
2003             case F_east_record:
2004               {
2005                 fout << F_east << " ";
2006                 break;
2007               }
2008             case F_down_record:
2009               {
2010                 fout << F_down << " ";
2011                 break;
2012               }
2013
2014               /*********************** Moments ***********************/
2015             case M_l_aero_record:
2016               {
2017                 fout << M_l_aero << " ";
2018                 break;
2019               }
2020             case M_m_aero_record:
2021               {
2022                 fout << M_m_aero << " ";
2023                 break;
2024               }
2025             case M_n_aero_record:
2026               {
2027                 fout << M_n_aero << " ";
2028                 break;
2029               }
2030             case M_l_engine_record:
2031               {
2032                 fout << M_l_engine << " ";
2033                 break;
2034               }
2035             case M_m_engine_record:
2036               {
2037                 fout << M_m_engine << " ";
2038                 break;
2039               }
2040             case M_n_engine_record:
2041               {
2042                 fout << M_n_engine << " ";
2043                 break;
2044               }
2045             case M_l_gear_record:
2046               {
2047                 fout << M_l_gear << " ";
2048                 break;
2049               }
2050             case M_m_gear_record:
2051               {
2052                 fout << M_m_gear << " ";
2053                 break;
2054               }
2055             case M_n_gear_record:
2056               {
2057                 fout << M_n_gear << " ";
2058                 break;
2059               }
2060             case M_l_rp_record:
2061               {
2062                 fout << M_l_rp << " ";
2063                 break;
2064               }
2065             case M_m_rp_record:
2066               {
2067                 fout << M_m_rp << " ";
2068                 break;
2069               }
2070             case M_n_rp_record:
2071               {
2072                 fout << M_n_rp << " ";
2073                 break;
2074               }
2075
2076               /********************* flapper variables *********************/
2077             case flapper_freq_record:
2078               {
2079                 fout << flapper_freq << " ";
2080                 break;
2081               }
2082             case flapper_phi_record:
2083               {
2084                 fout << flapper_phi << " ";
2085                 break;
2086               }
2087             case flapper_phi_deg_record:
2088               {
2089                 fout << flapper_phi*RAD_TO_DEG << " ";
2090                 break;
2091               }
2092             case flapper_Lift_record:
2093               {
2094                 fout << flapper_Lift << " ";
2095                 break;
2096               }
2097             case flapper_Thrust_record:
2098               {
2099                 fout << flapper_Thrust << " ";
2100                 break;
2101               }
2102             case flapper_Inertia_record:
2103               {
2104                 fout << flapper_Inertia << " ";
2105                 break;
2106               }
2107             case flapper_Moment_record:
2108               {
2109                 fout << flapper_Moment << " ";
2110                 break;
2111               }
2112               /********* MSS debug and other data *******************/
2113               /* debug variables for use in probing data            */
2114               /* comment out old lines, and add new                 */
2115               /* only remove code that you have written             */
2116             case debug1_record:
2117               {
2118                 // eta_q term check
2119                 // fout << eta_q_Cm_q_fac << " ";
2120                 // fout << eta_q_Cm_adot_fac << " ";
2121                 // fout << eta_q_Cmfade_fac << " ";
2122                 // fout << eta_q_Cl_dr_fac << " ";
2123                 // fout << eta_q_Cm_de_fac << " ";
2124                 // eta on tail
2125                 // fout << eta_q  << " ";
2126                 // engine RPM
2127                 // fout << engineOmega * 60 / (2 * LS_PI)<< " ";
2128                 // vertical climb rate in fpm
2129                 fout << V_down * 60 << " ";
2130                 // vertical climb rate in fps
2131                 // fout << V_down << " ";
2132                 // w_induced downwash at tail due to wing
2133                 // fout << gammaWing   << " ";
2134                 //fout << outside_control << " ";
2135                 break;
2136               }
2137             case debug2_record:
2138               {
2139                 // Lift to drag ratio 
2140                 // fout <<  V_ground_speed/V_down_rel_ground << " ";
2141                 // g's through the c.g. of the aircraft
2142                 fout << (-A_Z_cg/32.174) << " ";
2143                 // L/D via forces (used in 201 class for L/D)
2144                 // fout << (F_Z_wind/F_X_wind) << " ";
2145                 // gyroscopic moment (see uiuc_wrapper.cpp)
2146                 // fout << (polarInertia * engineOmega * Q_body) << " ";
2147                 // downwashAngle at tail
2148                 // fout << downwashAngle * 57.29 << " ";
2149                 // w_induced from engine
2150                 // fout << w_induced << " ";
2151                 break;
2152               }
2153             case debug3_record:
2154               {
2155                 // die off function for eta_q
2156                 // fout << (Cos_alpha * Cos_alpha)       << " ";
2157                 // gyroscopic moment (see uiuc_wrapper.cpp)
2158                 // fout << (-polarInertia * engineOmega * R_body) << " ";
2159                 // eta on tail
2160                 // fout << eta_q << " ";
2161                 // flapper cycle percentage
2162                 fout << (sin(flapper_phi - 3 * LS_PI / 2)) << " ";
2163                 break;
2164               }
2165               /********* RD debug and other data *******************/
2166               /* debug variables for use in probing data            */
2167               /* comment out old lines, and add new                 */
2168               /* only remove code that you have written             */
2169             case debug4_record:
2170               {
2171                 // flapper F_X_aero_flapper
2172                 fout << F_X_aero_flapper << " ";
2173                 break;
2174               }
2175             case debug5_record:
2176               {
2177                 // flapper F_Z_aero_flapper
2178                 //fout << F_Z_aero_flapper << " ";
2179                 // gear_rate
2180                 fout << gear_rate << " ";
2181                 break;
2182               }
2183             case debug6_record:
2184               {
2185                 //gear_max
2186                 fout << gear_max << " ";
2187                 break;
2188               }
2189             case V_down_fpm_record:
2190               {
2191                 fout << V_down * 60 << " ";
2192                 break;
2193               }
2194             case eta_q_record:
2195               {
2196                 fout << eta_q << " ";
2197                 break;
2198               }
2199             case rpm_record:
2200               {
2201                 fout << (engineOmega * 60 / (2 * LS_PI)) << " ";
2202                 break;
2203               }
2204             case elevator_sas_deg_record:
2205               {
2206                 fout << elevator_sas * RAD_TO_DEG << " ";
2207                 break;
2208               }
2209             case aileron_sas_deg_record:
2210               {
2211                 fout << aileron_sas * RAD_TO_DEG << " ";
2212                 break;
2213               }
2214             case rudder_sas_deg_record:
2215               {
2216                 fout << rudder_sas * RAD_TO_DEG << " ";
2217                 break;
2218               }
2219             case w_induced_record:
2220               {
2221                 fout << w_induced << " ";
2222                 break;
2223               }
2224             case downwashAngle_deg_record:
2225               {
2226                 fout << downwashAngle * RAD_TO_DEG << " ";
2227                 break;
2228               }
2229             case alphaTail_deg_record:
2230               {
2231                 fout << alphaTail * RAD_TO_DEG << " ";
2232                 break;
2233               }
2234             case gammaWing_record:
2235               {
2236                 fout << gammaWing << " ";
2237                 break;
2238               }
2239             case LD_record:
2240               {
2241                 fout << V_ground_speed/V_down_rel_ground  << " ";
2242                 break;
2243               }
2244             case gload_record:
2245               {
2246                 fout << -A_Z_cg/32.174 << " ";
2247                 break;
2248               }
2249             case gyroMomentQ_record:
2250               {
2251                 fout << polarInertia * engineOmega * Q_body << " ";
2252                 break;
2253               }
2254             case gyroMomentR_record:
2255               {
2256                 fout << -polarInertia * engineOmega * R_body << " ";
2257                 break;
2258               }
2259             case Gear_handle_record:
2260               {
2261                 fout << Gear_handle << " ";
2262                 break;
2263               }
2264             case gear_cmd_norm_record:
2265               {
2266                 fout << gear_cmd_norm << " ";
2267                 break;
2268               }
2269             case gear_pos_norm_record:
2270               {
2271                 fout << gear_pos_norm << " ";
2272                 break;
2273               }
2274               /****************Trigger Variables*******************/
2275             case trigger_on_record:
2276               {
2277                 fout << trigger_on << " ";
2278                 break;
2279               }
2280             case trigger_num_record:
2281               {
2282                 fout << trigger_num << " ";
2283                 break;
2284               }
2285             case trigger_toggle_record:
2286               {
2287                 fout << trigger_toggle << " ";
2288                 break;
2289               }
2290             case trigger_counter_record:
2291               {
2292                 fout << trigger_counter << " ";
2293                 break;
2294               }
2295             default:
2296               {
2297                 if (ignore_unknown_keywords) {
2298                   // do nothing
2299                 } else {
2300                   // print error message
2301                   uiuc_warnings_errors(2, *command_line);
2302                 }
2303                 break;
2304               }
2305             };
2306         } // end record map
2307     }
2308   recordStep++;
2309 }
2310
2311 // end uiuc_recorder.cpp