]> git.mxchange.org Git - flightgear.git/blob - src/FDM/UIUCModel/uiuc_recorder.cpp
Updated to match changes in radiostack.[ch]xx
[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_goal.
37                02/13/2002   (RD) Added variables so linear aero model
38                             values can be recorded
39
40 ----------------------------------------------------------------------
41
42  AUTHOR(S):    Jeff Scott         <jscott@mail.com>
43                Robert Deters      <rdeters@uiuc.edu>
44
45 ----------------------------------------------------------------------
46
47  VARIABLES:
48
49 ----------------------------------------------------------------------
50
51  INPUTS:       n/a
52
53 ----------------------------------------------------------------------
54
55  OUTPUTS:      -variables recorded in uiuc_recorder.dat
56
57 ----------------------------------------------------------------------
58
59  CALLED BY:   uiuc_wrapper.cpp 
60
61 ----------------------------------------------------------------------
62
63  CALLS TO:     none
64
65 ----------------------------------------------------------------------
66
67  COPYRIGHT:    (C) 2000 by Michael Selig
68
69  This program is free software; you can redistribute it and/or
70  modify it under the terms of the GNU General Public License
71  as published by the Free Software Foundation.
72
73  This program is distributed in the hope that it will be useful,
74  but WITHOUT ANY WARRANTY; without even the implied warranty of
75  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
76  GNU General Public License for more details.
77
78  You should have received a copy of the GNU General Public License
79  along with this program; if not, write to the Free Software
80  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
81  USA or view http://www.gnu.org/copyleft/gpl.html.
82
83 **********************************************************************/
84
85 #include "uiuc_recorder.h"
86
87 #if !defined (SG_HAVE_NATIVE_SGI_COMPILERS)
88 SG_USING_STD(endl);             // -dw
89 #endif
90
91 void uiuc_recorder( double dt )
92 {
93   stack command_list;
94   string linetoken;
95   static int init = 0;
96   static int recordStep = 0;
97   string record_variables = "# ";
98
99   int modulus = recordStep % recordRate;
100
101   if ((recordStep % recordRate) == 0)
102     {
103       command_list = recordParts->getCommands();
104       fout << endl;
105
106       LIST command_line;
107       for (command_line = command_list.begin(); command_line!=command_list.end(); ++command_line)
108         record_variables += recordParts->getToken(*command_line,2) + "  ";
109
110       fout << record_variables << endl; 
111       for (command_line = command_list.begin(); command_line!=command_list.end(); ++command_line)
112         {
113           linetoken = recordParts->getToken(*command_line, 2); 
114
115           switch(record_map[linetoken])
116             {
117               /************************* Time ************************/
118             case Simtime_record:
119               {
120                 fout << Simtime << " ";
121                 break;
122               }
123             case dt_record:
124               {
125                 fout << dt << " ";
126                 break;
127               }
128
129               /************************* Mass ************************/
130             case Weight_record:
131               {
132                 fout << Weight << " ";
133                 break;
134               }
135             case Mass_record:
136               {
137                 fout << Mass << " ";
138                 break;
139               }
140             case I_xx_record:
141               {
142                 fout << I_xx << " ";
143                 break;
144               }
145             case I_yy_record:
146               {
147                 fout << I_yy << " ";
148                 break;
149               }
150             case I_zz_record:
151               {
152                 fout << I_zz << " ";
153                 break;
154               }
155             case I_xz_record:
156               {
157                 fout << I_xz << " ";
158                 break;
159               }
160
161               /*********************** Geometry **********************/
162             case Dx_pilot_record:
163               {
164                 fout << Dx_pilot << " ";
165                 break;
166               }
167             case Dy_pilot_record:
168               {
169                 fout << Dy_pilot << " ";
170                 break;
171               }
172             case Dz_pilot_record:
173               {
174                 fout << Dz_pilot << " ";
175                 break;
176               }
177             case Dx_cg_record:
178               {
179                 fout << Dx_cg << " ";
180                 break;
181               }
182             case Dy_cg_record:
183               {
184                 fout << Dy_cg << " ";
185                 break;
186               }
187             case Dz_cg_record:
188               {
189                 fout << Dz_cg << " ";
190                 break;
191               }
192
193               /********************** Positions **********************/
194             case Lat_geocentric_record:
195               {
196                 fout << Lat_geocentric << " ";
197                 break;
198               }
199             case Lon_geocentric_record:
200               {
201                 fout << Lon_geocentric << " ";
202                 break;
203               }
204             case Radius_to_vehicle_record:
205               {
206                 fout << Radius_to_vehicle << " ";
207                 break;
208               }
209             case Latitude_record:
210               {
211                 fout << Latitude << " ";
212                 break;
213               }
214             case Longitude_record:
215               {
216                 fout << Longitude << " ";
217                 break;
218               }
219             case Altitude_record:
220               {
221                 fout << Altitude << " ";
222                 break;
223               }
224             case Phi_record:
225               {
226                 fout << Phi << " ";
227                 break;
228               }
229             case Theta_record:
230               {
231                 fout << Theta << " ";
232                 break;
233               }
234             case Psi_record:
235               {
236                 fout << Psi << " ";
237                 break;
238               }
239
240               /******************** Accelerations ********************/
241             case V_dot_north_record:
242               {
243                 fout << V_dot_north << " ";
244                 break;
245               }
246             case V_dot_east_record:
247               {
248                 fout << V_dot_east << " ";
249                 break;
250               }
251             case V_dot_down_record:
252               {
253                 fout << V_dot_down << " ";
254                 break;
255               }
256             case U_dot_body_record:
257               {
258                 fout << U_dot_body << " ";
259                 break;
260               }
261             case V_dot_body_record:
262               {
263                 fout << V_dot_body << " ";
264                 break;
265               }
266             case W_dot_body_record:
267               {
268                 fout << W_dot_body << " ";
269                 break;
270               }
271             case A_X_pilot_record:
272               {
273                 fout << A_X_pilot << " ";
274                 break;
275               }
276             case A_Y_pilot_record:
277               {
278                 fout << A_Y_pilot << " ";
279                 break;
280               }
281             case A_Z_pilot_record:
282               {
283                 fout << A_Z_pilot << " ";
284                 break;
285               }
286             case A_X_cg_record:
287               {
288                 fout << A_X_cg << " ";
289                 break;
290               }
291             case A_Y_cg_record:
292               {
293                 fout << A_Y_cg << " ";
294                 break;
295               }
296             case A_Z_cg_record:
297               {
298                 fout << A_Z_cg << " ";
299                 break;
300               }
301             case N_X_pilot_record:
302               {
303                 fout << N_X_pilot << " ";
304                 break;
305               }
306             case N_Y_pilot_record:
307               {
308                 fout << N_Y_pilot << " ";
309                 break;
310               }
311             case N_Z_pilot_record:
312               {
313                 fout << N_Z_pilot << " ";
314                 break;
315               }
316             case N_X_cg_record:
317               {
318                 fout << N_X_cg << " ";
319                 break;
320               }
321             case N_Y_cg_record:
322               {
323                 fout << N_Y_cg << " ";
324                 break;
325               }
326             case N_Z_cg_record:
327               {
328                 fout << N_Z_cg << " ";
329                 break;
330               }
331             case P_dot_body_record:
332               {
333                 fout << P_dot_body << " ";
334                 break;
335               }
336             case Q_dot_body_record:
337               {
338                 fout << Q_dot_body << " ";
339                 break;
340               }
341             case R_dot_body_record:
342               {
343                 fout << R_dot_body << " ";
344                 break;
345               }
346
347               /********************** Velocities *********************/
348             case V_north_record:
349               {
350                 fout << V_north << " ";
351                 break;
352               }
353             case V_east_record:
354               {
355                 fout << V_east << " ";
356                 break;
357               }
358             case V_down_record:
359               {
360                 fout << V_down << " ";
361                 break;
362               }
363             case V_north_rel_ground_record:
364               {
365                 fout << V_north_rel_ground << " ";
366                 break;
367               }
368             case V_east_rel_ground_record:
369               {
370                 fout << V_east_rel_ground << " ";
371                 break;
372               }
373             case V_down_rel_ground_record:
374               {
375                 fout << V_down_rel_ground << " ";
376                 break;
377               }
378             case V_north_airmass_record:
379               {
380                 fout << V_north_airmass << " ";
381                 break;
382               }
383             case V_east_airmass_record:
384               {
385                 fout << V_east_airmass << " ";
386                 break;
387               }
388             case V_down_airmass_record:
389               {
390                 fout << V_down_airmass << " ";
391                 break;
392               }
393             case V_north_rel_airmass_record:
394               {
395                 fout << V_north_rel_airmass << " ";
396                 break;
397               }
398             case V_east_rel_airmass_record:
399               {
400                 fout << V_east_rel_airmass << " ";
401                 break;
402               }
403             case V_down_rel_airmass_record:
404               {
405                 fout << V_down_rel_airmass << " ";
406                 break;
407               }
408             case U_gust_record:
409               {
410                 fout << U_gust << " ";
411                 break;
412               }
413             case V_gust_record:
414               {
415                 fout << V_gust << " ";
416                 break;
417               }
418             case W_gust_record:
419               {
420                 fout << W_gust << " ";
421                 break;
422               }
423             case U_body_record:
424               {
425                 fout << U_body << " ";
426                 break;
427               }
428             case V_body_record:
429               {
430                 fout << V_body << " ";
431                 break;
432               }
433             case W_body_record:
434               {
435                 fout << W_body << " ";
436                 break;
437               }
438             case V_rel_wind_record:
439               {
440                 fout << V_rel_wind << " ";
441                 break;
442               }
443             case V_true_kts_record:
444               {
445                 fout << V_true_kts << " ";
446                 break;
447               }
448             case V_rel_ground_record:
449               {
450                 fout << V_rel_ground << " ";
451                 break;
452               }
453             case V_inertial_record:
454               {
455                 fout << V_inertial << " ";
456                 break;
457               }
458             case V_ground_speed_record:
459               {
460                 fout << V_ground_speed << " ";
461                 break;
462               }
463             case V_equiv_record:
464               {
465                 fout << V_equiv << " ";
466                 break;
467               }
468             case V_equiv_kts_record:
469               {
470                 fout << V_equiv_kts << " ";
471                 break;
472               }
473             case V_calibrated_record:
474               {
475                 fout << V_calibrated << " ";
476                 break;
477               }
478             case V_calibrated_kts_record:
479               {
480                 fout << V_calibrated_kts << " ";
481                 break;
482               }
483             case P_local_record:
484               {
485                 fout << P_local << " ";
486                 break;
487               }
488             case Q_local_record:
489               {
490                 fout << Q_local << " ";
491                 break;
492               }
493             case R_local_record:
494               {
495                 fout << R_local << " ";
496                 break;
497               }
498             case P_body_record:
499               {
500                 fout << P_body << " ";
501                 break;
502               }
503             case Q_body_record:
504               {
505                 fout << Q_body << " ";
506                 break;
507               }
508             case R_body_record:
509               {
510                 fout << R_body << " ";
511                 break;
512               }
513             case P_total_record:
514               {
515                 fout << P_total << " ";
516                 break;
517               }
518             case Q_total_record:
519               {
520                 fout << Q_total << " ";
521                 break;
522               }
523             case R_total_record:
524               {
525                 fout << R_total << " ";
526                 break;
527               }
528             case Phi_dot_record:
529               {
530                 fout << Phi_dot << " ";
531                 break;
532               }
533             case Theta_dot_record:
534               {
535                 fout << Theta_dot << " ";
536                 break;
537               }
538             case Psi_dot_record:
539               {
540                 fout << Psi_dot << " ";
541                 break;
542               }
543             case Latitude_dot_record:
544               {
545                 fout << Latitude_dot << " ";
546                 break;
547               }
548             case Longitude_dot_record:
549               {
550                 fout << Longitude_dot << " ";
551                 break;
552               }
553             case Radius_dot_record:
554               {
555                 fout << Radius_dot << " ";
556                 break;
557               }
558
559               /************************ Angles ***********************/
560             case Alpha_record:
561               {
562                 fout << Alpha << " ";
563                 break;
564               }
565             case Alpha_deg_record:
566               {
567                 fout << Alpha * RAD_TO_DEG << " ";
568                 break;
569               }
570             case Alpha_dot_record:
571               {
572                 fout << Alpha_dot << " ";
573                 break;
574               }
575             case Alpha_dot_deg_record:
576               {
577                 fout << Alpha_dot * RAD_TO_DEG << " ";
578                 break;
579               }
580             case Beta_record:
581               {
582                 fout << Beta << " ";
583                 break;
584               }
585             case Beta_deg_record:
586               {
587                 fout << Beta * RAD_TO_DEG << " ";
588                 break;
589               }
590             case Beta_dot_record:
591               {
592                 fout << Beta_dot << " ";
593                 break;
594               }
595             case Beta_dot_deg_record:
596               {
597                 fout << Beta_dot * RAD_TO_DEG << " ";
598                 break;
599               }
600             case Gamma_vert_record:
601               {
602                 fout << Gamma_vert_rad << " ";
603                 break;
604               }
605             case Gamma_vert_deg_record:
606               {
607                 fout << Gamma_vert_rad * RAD_TO_DEG << " ";
608                 break;
609               }
610             case Gamma_horiz_record:
611               {
612                 fout << Gamma_horiz_rad << " ";
613                 break;
614               }
615             case Gamma_horiz_deg_record:
616               {
617                 fout << Gamma_horiz_rad * RAD_TO_DEG << " ";
618                 break;
619               }
620
621               /**************** Atmospheric Properties ***************/
622             case Density_record:
623               {
624                 fout << Density << " ";
625                 break;
626               }
627             case V_sound_record:
628               {
629                 fout << V_sound << " ";
630                 break;
631               }
632             case Mach_number_record:
633               {
634                 fout << Mach_number << " ";
635                 break;
636               }
637             case Static_pressure_record:
638               {
639                 fout << Static_pressure << " ";
640                 break;
641               }
642             case Total_pressure_record:
643               {
644                 fout << Total_pressure << " ";
645                 break;
646               }
647             case Impact_pressure_record:
648               {
649                 fout << Impact_pressure << " ";
650                 break;
651               }
652             case Dynamic_pressure_record:
653               {
654                 fout << Dynamic_pressure << " ";
655                 break;
656               }
657             case Static_temperature_record:
658               {
659                 fout << Static_temperature << " ";
660                 break;
661               }
662             case Total_temperature_record:
663               {
664                 fout << Total_temperature << " ";
665                 break;
666               }
667
668               /******************** Earth Properties *****************/
669             case Gravity_record:
670               {
671                 fout << Gravity << " ";
672                 break;
673               }
674             case Sea_level_radius_record:
675               {
676                 fout << Sea_level_radius << " ";
677                 break;
678               }
679             case Earth_position_angle_record:
680               {
681                 fout << Earth_position_angle << " ";
682                 break;
683               }
684             case Runway_altitude_record:
685               {
686                 fout << Runway_altitude << " ";
687                 break;
688               }
689             case Runway_latitude_record:
690               {
691                 fout << Runway_latitude << " ";
692                 break;
693               }
694             case Runway_longitude_record:
695               {
696                 fout << Runway_longitude << " ";
697                 break;
698               }
699             case Runway_heading_record:
700               {
701                 fout << Runway_heading << " ";
702                 break;
703               }
704             case Radius_to_rwy_record:
705               {
706                 fout << Radius_to_rwy << " ";
707                 break;
708               }
709             case D_pilot_north_of_rwy_record:
710               {
711                 fout << D_pilot_north_of_rwy << " ";
712                 break;
713               }
714             case D_pilot_east_of_rwy_record:
715               {
716                 fout << D_pilot_east_of_rwy << " ";
717                 break;
718               }
719             case D_pilot_above_rwy_record:
720               {
721                 fout << D_pilot_above_rwy << " ";
722                 break;
723               }
724             case X_pilot_rwy_record:
725               {
726                 fout << X_pilot_rwy << " ";
727                 break;
728               }
729             case Y_pilot_rwy_record:
730               {
731                 fout << Y_pilot_rwy << " ";
732                 break;
733               }
734             case H_pilot_rwy_record:
735               {
736                 fout << H_pilot_rwy << " ";
737                 break;
738               }
739             case D_cg_north_of_rwy_record:
740               {
741                 fout << D_cg_north_of_rwy << " ";
742                 break;
743               }
744             case D_cg_east_of_rwy_record:
745               {
746                 fout << D_cg_east_of_rwy << " ";
747                 break;
748               }
749             case D_cg_above_rwy_record:
750               {
751                 fout << D_cg_above_rwy << " ";
752                 break;
753               }
754             case X_cg_rwy_record:
755               {
756                 fout << X_cg_rwy << " ";
757                 break;
758               }
759             case Y_cg_rwy_record:
760               {
761                 fout << Y_cg_rwy << " ";
762                 break;
763               }
764             case H_cg_rwy_record:
765               {
766                 fout << H_cg_rwy << " ";
767                 break;
768               }
769
770               /********************* Engine Inputs *******************/
771             case Throttle_3_record:
772               {
773                 fout << Throttle[3] << " ";
774                 break;
775               }
776             case Throttle_pct_record:
777               {
778                 fout << Throttle_pct << " ";
779                 break;
780               }
781
782               /******************** Control Inputs *******************/
783             case Long_control_record:
784               {
785                 fout << Long_control << " ";
786                 break;
787               }
788             case Long_trim_record:
789               {
790                 fout << Long_trim << " ";
791                 break;
792               }
793             case Long_trim_deg_record:
794               {
795                 fout << Long_trim * RAD_TO_DEG << " ";
796                 break;
797               }
798             case elevator_record:
799               {
800                 fout << elevator << " ";
801                 break;
802               }
803             case elevator_deg_record:
804               {
805                 fout << elevator * RAD_TO_DEG << " ";
806                 break;
807               }
808             case Lat_control_record:
809               {
810                 fout << Lat_control << " ";
811                 break;
812               }
813             case aileron_record:
814               {
815                 fout << aileron << " ";
816                 break;
817               }
818             case aileron_deg_record:
819               {
820                 fout << aileron * RAD_TO_DEG << " ";
821                 break;
822               }
823             case Rudder_pedal_record:
824               {
825                 fout << Rudder_pedal << " ";
826                 break;
827               }
828             case rudder_record:
829               {
830                 fout << rudder << " ";
831                 break;
832               }
833             case rudder_deg_record:
834               {
835                 fout << rudder * RAD_TO_DEG << " ";
836                 break;
837               }
838             case Flap_handle_record:
839               {
840                 fout << Flap_handle << " ";
841                 break;
842               }
843             case flap_record:
844               {
845                 fout << flap << " ";
846                 break;
847               }
848             case flap_deg_record:
849               {
850                 fout << flap * RAD_TO_DEG << " ";
851                 break;
852               }
853             case flap_goal_record:
854               {
855                 fout << flap_goal << " ";
856                 break;
857               }
858             case flap_pos_record:
859               {
860                 fout << flap_pos << " ";
861                 break;
862               }
863
864               /****************** Aero Coefficients ******************/
865             case CD_record:
866               {
867                 fout << CD << " ";
868                 break;
869               }
870             case CDfaI_record:
871               {
872                 fout << CDfaI << " ";
873                 break;
874               }
875             case CDfCLI_record:
876               {
877                 fout << CDfCLI << " ";
878                 break;
879               }
880             case CDfadeI_record:
881               {
882                 fout << CDfadeI << " ";
883                 break;
884               }
885             case CDfdfI_record:
886               {
887                 fout << CDfdfI << " ";
888                 break;
889               }
890             case CDfadfI_record:
891               {
892                 fout << CDfadfI << " ";
893                 break;
894               }
895             case CX_record:
896               {
897                 fout << CX << " ";
898                 break;
899               }
900             case CXfabetafI_record:
901               {
902                 fout << CXfabetafI << " ";
903                 break;
904               }
905             case CXfadefI_record:
906               {
907                 fout << CXfadefI << " ";
908                 break;
909               }
910             case CXfaqfI_record:
911               {
912                 fout << CXfaqfI << " ";
913                 break;
914               }
915             case CDo_save_record:
916               {
917                 fout << CDo_save << " ";
918                 break;
919               }
920             case CDK_save_record:
921               {
922                 fout << CDK_save << " ";
923                 break;
924               }
925             case CD_a_save_record:
926               {
927                 fout << CD_a_save << " ";
928                 break;
929               }
930             case CD_adot_save_record:
931               {
932                 fout << CD_adot_save << " ";
933                 break;
934               }
935             case CD_q_save_record:
936               {
937                 fout << CD_q_save << " ";
938                 break;
939               }
940             case CD_ih_save_record:
941               {
942                 fout << CD_ih_save << " ";
943                 break;
944               }
945             case CD_de_save_record:
946               {
947                 fout << CD_de_save << " ";
948                 break;
949               }
950             case CXo_save_record:
951               {
952                 fout << CXo_save << " ";
953                 break;
954               }
955             case CXK_save_record:
956               {
957                 fout << CXK_save << " ";
958                 break;
959               }
960             case CX_a_save_record:
961               {
962                 fout << CX_a_save << " ";
963                 break;
964               }
965             case CX_a2_save_record:
966               {
967                 fout << CX_a2_save << " ";
968                 break;
969               }
970             case CX_a3_save_record:
971               {
972                 fout << CX_a3_save << " ";
973                 break;
974               }
975             case CX_adot_save_record:
976               {
977                 fout << CX_adot_save << " ";
978                 break;
979               }
980             case CX_q_save_record:
981               {
982                 fout << CX_q_save << " ";
983                 break;
984               }
985             case CX_de_save_record:
986               {
987                 fout << CX_de_save << " ";
988                 break;
989               }
990             case CX_dr_save_record:
991               {
992                 fout << CX_dr_save << " ";
993                 break;
994               }
995             case CX_df_save_record:
996               {
997                 fout << CX_df_save << " ";
998                 break;
999               }
1000             case CX_adf_save_record:
1001               {
1002                 fout << CX_adf_save << " ";
1003                 break;
1004               }
1005             case CL_record:
1006               {
1007                 fout << CL << " ";
1008                 break;
1009               }
1010             case CLfaI_record:
1011               {
1012                 fout << CLfaI << " ";
1013                 break;
1014               }
1015             case CLfadeI_record:
1016               {
1017                 fout << CLfadeI << " ";
1018                 break;
1019               }
1020             case CLfdfI_record:
1021               {
1022                 fout << CLfdfI << " ";
1023                 break;
1024               }
1025             case CLfadfI_record:
1026               {
1027                 fout << CLfadfI << " ";
1028                 break;
1029               }
1030             case CZ_record:
1031               {
1032                 fout << CZ << " ";
1033                 break;
1034               }
1035             case CZfaI_record:
1036               {
1037                 fout << CZfaI << " ";
1038                 break;
1039               }
1040             case CZfabetafI_record:
1041               {
1042                 fout << CZfabetafI << " ";
1043                 break;
1044               }
1045             case CZfadefI_record:
1046               {
1047                 fout << CZfadefI << " ";
1048                 break;
1049               }
1050             case CZfaqfI_record:
1051               {
1052                 fout << CZfaqfI << " ";
1053                 break;
1054               }
1055             case CLo_save_record:
1056               {
1057                 fout << CLo_save << " ";
1058                 break;
1059               }
1060             case CL_a_save_record:
1061               {
1062                 fout << CL_a_save << " ";
1063                 break;
1064               }
1065             case CL_adot_save_record:
1066               {
1067                 fout << CL_adot_save << " ";
1068                 break;
1069               }
1070             case CL_q_save_record:
1071               {
1072                 fout << CL_q_save << " ";
1073                 break;
1074               }
1075             case CL_ih_save_record:
1076               {
1077                 fout << CL_ih_save << " ";
1078                 break;
1079               }
1080             case CL_de_save_record:
1081               {
1082                 fout << CL_de_save << " ";
1083                 break;
1084               }
1085             case CZo_save_record:
1086               {
1087                 fout << CZo_save << " ";
1088                 break;
1089               }
1090             case CZ_a_save_record:
1091               {
1092                 fout << CZ_a_save << " ";
1093                 break;
1094               }
1095             case CZ_a2_save_record:
1096               {
1097                 fout << CZ_a2_save << " ";
1098                 break;
1099               }
1100             case CZ_a3_save_record:
1101               {
1102                 fout << CZ_a3_save << " ";
1103                 break;
1104               }
1105             case CZ_adot_save_record:
1106               {
1107                 fout << CZ_adot_save << " ";
1108                 break;
1109               }
1110             case CZ_q_save_record:
1111               {
1112                 fout << CZ_q_save << " ";
1113                 break;
1114               }
1115             case CZ_de_save_record:
1116               {
1117                 fout << CZ_de_save << " ";
1118                 break;
1119               }
1120             case CZ_deb2_save_record:
1121               {
1122                 fout << CZ_deb2_save << " ";
1123                 break;
1124               }
1125             case CZ_df_save_record:
1126               {
1127                 fout << CZ_df_save << " ";
1128                 break;
1129               }
1130             case CZ_adf_save_record:
1131               {
1132                 fout << CZ_adf_save << " ";
1133                 break;
1134               }
1135             case Cm_record:
1136               {
1137                 fout << Cm << " ";
1138                 break;
1139               }
1140             case CmfaI_record:
1141               {
1142                 fout << CmfaI << " ";
1143                 break;
1144               }
1145             case CmfadeI_record:
1146               {
1147                 fout << CmfadeI << " ";
1148                 break;
1149               }
1150             case CmfdfI_record:
1151               {
1152                 fout << CmfdfI << " ";
1153                 break;
1154               }
1155             case CmfadfI_record:
1156               {
1157                 fout << CmfadfI << " ";
1158                 break;
1159               }
1160             case CmfabetafI_record:
1161               {
1162                 fout << CmfabetafI << " ";
1163                 break;
1164               }
1165             case CmfadefI_record:
1166               {
1167                 fout << CmfadefI << " ";
1168                 break;
1169               }
1170             case CmfaqfI_record:
1171               {
1172                 fout << CmfaqfI << " ";
1173                 break;
1174               }
1175             case Cmo_save_record:
1176               {
1177                 fout << Cmo_save << " ";
1178                 break;
1179               }
1180             case Cm_a_save_record:
1181               {
1182                 fout << Cm_a_save << " ";
1183                 break;
1184               }
1185             case Cm_a2_save_record:
1186               {
1187                 fout << Cm_a2_save << " ";
1188                 break;
1189               }
1190             case Cm_adot_save_record:
1191               {
1192                 fout << Cm_adot_save << " ";
1193                 break;
1194               }
1195             case Cm_q_save_record:
1196               {
1197                 fout << Cm_q_save << " ";
1198                 break;
1199               }
1200             case Cm_ih_save_record:
1201               {
1202                 fout << Cm_ih_save << " ";
1203                 break;
1204               }
1205             case Cm_de_save_record:
1206               {
1207                 fout << Cm_de_save << " ";
1208                 break;
1209               }
1210             case Cm_b2_save_record:
1211               {
1212                 fout << Cm_b2_save << " ";
1213                 break;
1214               }
1215             case Cm_r_save_record:
1216               {
1217                 fout << Cm_r_save << " ";
1218                 break;
1219               }
1220             case Cm_df_save_record:
1221               {
1222                 fout << Cm_df_save << " ";
1223                 break;
1224               }
1225             case CY_record:
1226               {
1227                 fout << CY  << " ";
1228                 break;
1229               }
1230             case CYfadaI_record:
1231               {
1232                 fout << CYfadaI << " ";
1233                 break;
1234               }
1235             case CYfbetadrI_record:
1236               {
1237                 fout << CYfbetadrI << " ";
1238                 break;
1239               }
1240             case CYfabetafI_record:
1241               {
1242                 fout << CYfabetafI << " ";
1243                 break;
1244               }
1245             case CYfadafI_record:
1246               {
1247                 fout << CYfadafI << " ";
1248                 break;
1249               }
1250             case CYfadrfI_record:
1251               {
1252                 fout << CYfadrfI << " ";
1253                 break;
1254               }
1255             case CYfapfI_record:
1256               {
1257                 fout << CYfapfI << " ";
1258                 break;
1259               }
1260             case CYfarfI_record:
1261               {
1262                 fout << CYfarfI << " ";
1263                 break;
1264               }
1265             case CYo_save_record:
1266               {
1267                 fout << CYo_save << " ";
1268                 break;
1269               }
1270             case CY_beta_save_record:
1271               {
1272                 fout << CY_beta_save << " ";
1273                 break;
1274               }
1275             case CY_p_save_record:
1276               {
1277                 fout << CY_p_save << " ";
1278                 break;
1279               }
1280             case CY_r_save_record:
1281               {
1282                 fout << CY_r_save << " ";
1283                 break;
1284               }
1285             case CY_da_save_record:
1286               {
1287                 fout << CY_da_save << " ";
1288                 break;
1289               }
1290             case CY_dr_save_record:
1291               {
1292                 fout << CY_dr_save << " ";
1293                 break;
1294               }
1295             case CY_dra_save_record:
1296               {
1297                 fout << CY_dra_save << " ";
1298                 break;
1299               }
1300             case CY_bdot_save_record:
1301               {
1302                 fout << CY_bdot_save << " ";
1303                 break;
1304               }
1305             case Cl_record:
1306               {
1307                 fout << Cl << " ";
1308                 break;
1309               }
1310             case ClfadaI_record:
1311               {
1312                 fout << ClfadaI << " ";
1313                 break;
1314               }
1315             case ClfbetadrI_record:
1316               {
1317                 fout << ClfbetadrI << " ";
1318                 break;
1319               }
1320             case ClfabetafI_record:
1321               {
1322                 fout << ClfabetafI << " ";
1323                 break;
1324               }
1325             case ClfadafI_record:
1326               {
1327                 fout << ClfadafI << " ";
1328                 break;
1329               }
1330             case ClfadrfI_record:
1331               {
1332                 fout << ClfadrfI << " ";
1333                 break;
1334               }
1335             case ClfapfI_record:
1336               {
1337                 fout << ClfapfI << " ";
1338                 break;
1339               }
1340             case ClfarfI_record:
1341               {
1342                 fout << ClfarfI << " ";
1343                 break;
1344               }
1345             case Clo_save_record:
1346               {
1347                 fout << Clo_save << " ";
1348                 break;
1349               }
1350             case Cl_beta_save_record:
1351               {
1352                 fout << Cl_beta_save << " ";
1353                 break;
1354               }
1355             case Cl_p_save_record:
1356               {
1357                 fout << Cl_p_save << " ";
1358                 break;
1359               }
1360             case Cl_r_save_record:
1361               {
1362                 fout << Cl_r_save << " ";
1363                 break;
1364               }
1365             case Cl_da_save_record:
1366               {
1367                 fout << Cl_da_save << " ";
1368                 break;
1369               }
1370             case Cl_dr_save_record:
1371               {
1372                 fout << Cl_dr_save << " ";
1373                 break;
1374               }
1375             case Cl_daa_save_record:
1376               {
1377                 fout << Cl_daa_save << " ";
1378                 break;
1379               }
1380             case Cn_record:
1381               {
1382                 fout << Cn << " ";
1383                 break;
1384               }
1385             case CnfadaI_record:
1386               {
1387                 fout << CnfadaI << " ";
1388                 break;
1389               }
1390             case CnfbetadrI_record:
1391               {
1392                 fout << CnfbetadrI << " ";
1393                 break;
1394               }
1395             case CnfabetafI_record:
1396               {
1397                 fout << CnfabetafI << " ";
1398                 break;
1399               }
1400             case CnfadafI_record:
1401               {
1402                 fout << CnfadafI << " ";
1403                 break;
1404               }
1405             case CnfadrfI_record:
1406               {
1407                 fout << CnfadrfI << " ";
1408                 break;
1409               }
1410             case CnfapfI_record:
1411               {
1412                 fout << CnfapfI << " ";
1413                 break;
1414               }
1415             case CnfarfI_record:
1416               {
1417                 fout << CnfarfI << " ";
1418                 break;
1419               }
1420             case Cno_save_record:
1421               {
1422                 fout << Cno_save << " ";
1423                 break;
1424               }
1425             case Cn_beta_save_record:
1426               {
1427                 fout << Cn_beta_save << " ";
1428                 break;
1429               }
1430             case Cn_p_save_record:
1431               {
1432                 fout << Cn_p_save << " ";
1433                 break;
1434               }
1435             case Cn_r_save_record:
1436               {
1437                 fout << Cn_r_save << " ";
1438                 break;
1439               }
1440             case Cn_da_save_record:
1441               {
1442                 fout << Cn_da_save << " ";
1443                 break;
1444               }
1445             case Cn_dr_save_record:
1446               {
1447                 fout << Cn_dr_save << " ";
1448                 break;
1449               }
1450             case Cn_q_save_record:
1451               {
1452                 fout << Cn_q_save << " ";
1453                 break;
1454               }
1455             case Cn_b3_save_record:
1456               {
1457                 fout << Cn_b3_save << " ";
1458                 break;
1459               }
1460
1461               /******************** Ice Detection ********************/
1462             case CLclean_wing_record:
1463               {
1464                 fout << CLclean_wing << " ";
1465                 break;
1466               }
1467             case CLiced_wing_record:
1468               {
1469                 fout << CLiced_wing << " ";
1470                 break;
1471               }
1472             case CLclean_tail_record:
1473               {
1474                 fout << CLclean_tail << " ";
1475                 break;
1476               }
1477             case CLiced_tail_record:
1478               {
1479                 fout << CLiced_tail << " ";
1480                 break;
1481               }
1482             case Lift_clean_wing_record:
1483               {
1484                 fout << Lift_clean_wing << " ";
1485                 break;
1486               }
1487             case Lift_iced_wing_record:
1488               {
1489                 fout << Lift_iced_wing << " ";
1490                 break;
1491               }
1492             case Lift_clean_tail_record:
1493               {
1494                 fout << Lift_clean_tail << " ";
1495                 break;
1496               }
1497             case Lift_iced_tail_record:
1498               {
1499                 fout << Lift_iced_tail << " ";
1500                 break;
1501               }
1502             case Gamma_clean_wing_record:
1503               {
1504                 fout << Gamma_clean_wing << " ";
1505                 break;
1506               }
1507             case Gamma_iced_wing_record:
1508               {
1509                 fout << Gamma_iced_wing << " ";
1510                 break;
1511               }
1512             case Gamma_clean_tail_record:
1513               {
1514                 fout << Gamma_clean_tail << " ";
1515                 break;
1516               }
1517             case Gamma_iced_tail_record:
1518               {
1519                 fout << Gamma_iced_tail << " ";
1520                 break;
1521               }
1522             case w_clean_wing_record:
1523               {
1524                 fout << w_clean_wing << " ";
1525                 break;
1526               }
1527             case w_iced_wing_record:
1528               {
1529                 fout << w_iced_wing << " ";
1530                 break;
1531               }
1532             case w_clean_tail_record:
1533               {
1534                 fout << w_clean_tail << " ";
1535                 break;
1536               }
1537             case w_iced_tail_record:
1538               {
1539                 fout << w_iced_tail << " ";
1540                 break;
1541               }
1542             case V_total_clean_wing_record:
1543               {
1544                 fout << V_total_clean_wing << " ";
1545                 break;
1546               }
1547             case V_total_iced_wing_record:
1548               {
1549                 fout << V_total_iced_wing << " ";
1550                 break;
1551               }
1552             case V_total_clean_tail_record:
1553               {
1554                 fout << V_total_clean_tail << " ";
1555                 break;
1556               }
1557             case V_total_iced_tail_record:
1558               {
1559                 fout << V_total_iced_tail << " ";
1560                 break;
1561               }
1562             case beta_flow_clean_wing_record:
1563               {
1564                 fout << beta_flow_clean_wing << " ";
1565                 break;
1566               }
1567             case beta_flow_clean_wing_deg_record:
1568               {
1569                 fout << beta_flow_clean_wing * RAD_TO_DEG << " ";
1570                 break;
1571               }
1572             case beta_flow_iced_wing_record:
1573               {
1574                 fout << beta_flow_iced_wing << " ";
1575                 break;
1576               }
1577             case beta_flow_iced_wing_deg_record:
1578               {
1579                 fout << beta_flow_iced_wing * RAD_TO_DEG << " ";
1580                 break;
1581               }
1582             case beta_flow_clean_tail_record:
1583               {
1584                 fout << beta_flow_clean_tail << " ";
1585                 break;
1586               }
1587             case beta_flow_clean_tail_deg_record:
1588               {
1589                 fout << beta_flow_clean_tail * RAD_TO_DEG << " ";
1590                 break;
1591               }
1592             case beta_flow_iced_tail_record:
1593               {
1594                 fout << beta_flow_iced_tail << " ";
1595                 break;
1596               }
1597             case beta_flow_iced_tail_deg_record:
1598               {
1599                 fout << beta_flow_iced_tail * RAD_TO_DEG << " ";
1600                 break;
1601               }
1602             case Dbeta_flow_wing_record:
1603               {
1604                 fout << Dbeta_flow_wing << " ";
1605                 break;
1606               }
1607             case Dbeta_flow_wing_deg_record:
1608               {
1609                 fout << Dbeta_flow_wing * RAD_TO_DEG << " ";
1610                 break;
1611               }
1612             case Dbeta_flow_tail_record:
1613               {
1614                 fout << Dbeta_flow_tail << " ";
1615                 break;
1616               }
1617             case Dbeta_flow_tail_deg_record:
1618               {
1619                 fout << Dbeta_flow_tail * RAD_TO_DEG << " ";
1620                 break;
1621               }
1622             case pct_beta_flow_wing_record:
1623               {
1624                 fout << pct_beta_flow_wing << " ";
1625                 break;
1626               }
1627             case pct_beta_flow_tail_record:
1628               {
1629                 fout << pct_beta_flow_tail << " ";
1630                 break;
1631               }
1632
1633               /************************ Forces ***********************/
1634             case F_X_wind_record:
1635               {
1636                 fout << F_X_wind << " ";
1637                 break;
1638               }
1639             case F_Y_wind_record:
1640               {
1641                 fout << F_Y_wind << " ";
1642                 break;
1643               }
1644             case F_Z_wind_record:
1645               {
1646                 fout << F_Z_wind << " ";
1647                 break;
1648               }
1649             case F_X_aero_record:
1650               {
1651                 fout << F_X_aero << " ";
1652                 break;
1653               }
1654             case F_Y_aero_record:
1655               {
1656                 fout << F_Y_aero << " ";
1657                 break;
1658               }
1659             case F_Z_aero_record:
1660               {
1661                 fout << F_Z_aero << " ";
1662                 break;
1663               }
1664             case F_X_engine_record:
1665               {
1666                 fout << F_X_engine << " ";
1667                 break;
1668               }
1669             case F_Y_engine_record:
1670               {
1671                 fout << F_Y_engine << " ";
1672                 break;
1673               }
1674             case F_Z_engine_record:
1675               {
1676                 fout << F_Z_engine << " ";
1677                 break;
1678               }
1679             case F_X_gear_record:
1680               {
1681                 fout << F_X_gear << " ";
1682                 break;
1683               }
1684             case F_Y_gear_record:
1685               {
1686                 fout << F_Y_gear << " ";
1687                 break;
1688               }
1689             case F_Z_gear_record:
1690               {
1691                 fout << F_Z_gear << " ";
1692                 break;
1693               }
1694             case F_X_record:
1695               {
1696                 fout << F_X << " ";
1697                 break;
1698               }
1699             case F_Y_record:
1700               {
1701                 fout << F_Y << " ";
1702                 break;
1703               }
1704             case F_Z_record:
1705               {
1706                 fout << F_Z << " ";
1707                 break;
1708               }
1709             case F_north_record:
1710               {
1711                 fout << F_north << " ";
1712                 break;
1713               }
1714             case F_east_record:
1715               {
1716                 fout << F_east << " ";
1717                 break;
1718               }
1719             case F_down_record:
1720               {
1721                 fout << F_down << " ";
1722                 break;
1723               }
1724
1725               /*********************** Moments ***********************/
1726             case M_l_aero_record:
1727               {
1728                 fout << M_l_aero << " ";
1729                 break;
1730               }
1731             case M_m_aero_record:
1732               {
1733                 fout << M_m_aero << " ";
1734                 break;
1735               }
1736             case M_n_aero_record:
1737               {
1738                 fout << M_n_aero << " ";
1739                 break;
1740               }
1741             case M_l_engine_record:
1742               {
1743                 fout << M_l_engine << " ";
1744                 break;
1745               }
1746             case M_m_engine_record:
1747               {
1748                 fout << M_m_engine << " ";
1749                 break;
1750               }
1751             case M_n_engine_record:
1752               {
1753                 fout << M_n_engine << " ";
1754                 break;
1755               }
1756             case M_l_gear_record:
1757               {
1758                 fout << M_l_gear << " ";
1759                 break;
1760               }
1761             case M_m_gear_record:
1762               {
1763                 fout << M_m_gear << " ";
1764                 break;
1765               }
1766             case M_n_gear_record:
1767               {
1768                 fout << M_n_gear << " ";
1769                 break;
1770               }
1771             case M_l_rp_record:
1772               {
1773                 fout << M_l_rp << " ";
1774                 break;
1775               }
1776             case M_m_rp_record:
1777               {
1778                 fout << M_m_rp << " ";
1779                 break;
1780               }
1781             case M_n_rp_record:
1782               {
1783                 fout << M_n_rp << " ";
1784                 break;
1785               }
1786             };
1787         } // end record map
1788     }
1789   recordStep++;
1790 }
1791
1792 // end uiuc_recorder.cpp