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