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