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