]> git.mxchange.org Git - flightgear.git/blob - src/FDM/UIUCModel/uiuc_recorder.cpp
Updated Cameron's entry.
[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
29 ----------------------------------------------------------------------
30
31  AUTHOR(S):    Jeff Scott         <jscott@mail.com>
32
33 ----------------------------------------------------------------------
34
35  VARIABLES:
36
37 ----------------------------------------------------------------------
38
39  INPUTS:       n/a
40
41 ----------------------------------------------------------------------
42
43  OUTPUTS:      -variables recorded in uiuc_recorder.dat
44
45 ----------------------------------------------------------------------
46
47  CALLED BY:   uiuc_wrapper.cpp 
48
49 ----------------------------------------------------------------------
50
51  CALLS TO:     none
52
53 ----------------------------------------------------------------------
54
55  COPYRIGHT:    (C) 2000 by Michael Selig
56
57  This program is free software; you can redistribute it and/or
58  modify it under the terms of the GNU General Public License
59  as published by the Free Software Foundation.
60
61  This program is distributed in the hope that it will be useful,
62  but WITHOUT ANY WARRANTY; without even the implied warranty of
63  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
64  GNU General Public License for more details.
65
66  You should have received a copy of the GNU General Public License
67  along with this program; if not, write to the Free Software
68  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
69  USA or view http://www.gnu.org/copyleft/gpl.html.
70
71 **********************************************************************/
72
73 #include "uiuc_recorder.h"
74
75 #if !defined (SG_HAVE_NATIVE_SGI_COMPILERS)
76 SG_USING_STD(endl);             // -dw
77 #endif
78
79 void uiuc_recorder( double dt )
80 {
81   stack command_list;
82   string linetoken;
83   static int init = 0;
84   static int recordStep = 0;
85   string record_variables = "# ";
86
87   int modulus = recordStep % recordRate;
88
89   if ((recordStep % recordRate) == 0)
90     {
91       command_list = recordParts->getCommands();
92       fout << endl;
93
94       LIST command_line;
95       for (command_line = command_list.begin(); command_line!=command_list.end(); ++command_line)
96         record_variables += recordParts->getToken(*command_line,2) + "  ";
97
98       fout << record_variables << endl; 
99       for (command_line = command_list.begin(); command_line!=command_list.end(); ++command_line)
100         {
101           linetoken = recordParts->getToken(*command_line, 2); 
102
103           switch(record_map[linetoken])
104             {
105               /************************* Time ************************/
106             case Simtime_record:
107               {
108                 fout << Simtime << " ";
109                 break;
110               }
111             case dt_record:
112               {
113                 fout << dt << " ";
114                 break;
115               }
116
117               /************************* Mass ************************/
118             case Weight_record:
119               {
120                 fout << Weight << " ";
121                 break;
122               }
123             case Mass_record:
124               {
125                 fout << Mass << " ";
126                 break;
127               }
128             case I_xx_record:
129               {
130                 fout << I_xx << " ";
131                 break;
132               }
133             case I_yy_record:
134               {
135                 fout << I_yy << " ";
136                 break;
137               }
138             case I_zz_record:
139               {
140                 fout << I_zz << " ";
141                 break;
142               }
143             case I_xz_record:
144               {
145                 fout << I_xz << " ";
146                 break;
147               }
148
149               /*********************** Geometry **********************/
150             case Dx_pilot_record:
151               {
152                 fout << Dx_pilot << " ";
153                 break;
154               }
155             case Dy_pilot_record:
156               {
157                 fout << Dy_pilot << " ";
158                 break;
159               }
160             case Dz_pilot_record:
161               {
162                 fout << Dz_pilot << " ";
163                 break;
164               }
165             case Dx_cg_record:
166               {
167                 fout << Dx_cg << " ";
168                 break;
169               }
170             case Dy_cg_record:
171               {
172                 fout << Dy_cg << " ";
173                 break;
174               }
175             case Dz_cg_record:
176               {
177                 fout << Dz_cg << " ";
178                 break;
179               }
180
181               /********************** Positions **********************/
182             case Lat_geocentric_record:
183               {
184                 fout << Lat_geocentric << " ";
185                 break;
186               }
187             case Lon_geocentric_record:
188               {
189                 fout << Lon_geocentric << " ";
190                 break;
191               }
192             case Radius_to_vehicle_record:
193               {
194                 fout << Radius_to_vehicle << " ";
195                 break;
196               }
197             case Latitude_record:
198               {
199                 fout << Latitude << " ";
200                 break;
201               }
202             case Longitude_record:
203               {
204                 fout << Longitude << " ";
205                 break;
206               }
207             case Altitude_record:
208               {
209                 fout << Altitude << " ";
210                 break;
211               }
212             case Phi_record:
213               {
214                 fout << Phi << " ";
215                 break;
216               }
217             case Theta_record:
218               {
219                 fout << Theta << " ";
220                 break;
221               }
222             case Psi_record:
223               {
224                 fout << Psi << " ";
225                 break;
226               }
227
228               /******************** Accelerations ********************/
229             case V_dot_north_record:
230               {
231                 fout << V_dot_north << " ";
232                 break;
233               }
234             case V_dot_east_record:
235               {
236                 fout << V_dot_east << " ";
237                 break;
238               }
239             case V_dot_down_record:
240               {
241                 fout << V_dot_down << " ";
242                 break;
243               }
244             case U_dot_body_record:
245               {
246                 fout << U_dot_body << " ";
247                 break;
248               }
249             case V_dot_body_record:
250               {
251                 fout << V_dot_body << " ";
252                 break;
253               }
254             case W_dot_body_record:
255               {
256                 fout << W_dot_body << " ";
257                 break;
258               }
259             case A_X_pilot_record:
260               {
261                 fout << A_X_pilot << " ";
262                 break;
263               }
264             case A_Y_pilot_record:
265               {
266                 fout << A_Y_pilot << " ";
267                 break;
268               }
269             case A_Z_pilot_record:
270               {
271                 fout << A_Z_pilot << " ";
272                 break;
273               }
274             case A_X_cg_record:
275               {
276                 fout << A_X_cg << " ";
277                 break;
278               }
279             case A_Y_cg_record:
280               {
281                 fout << A_Y_cg << " ";
282                 break;
283               }
284             case A_Z_cg_record:
285               {
286                 fout << A_Z_cg << " ";
287                 break;
288               }
289             case N_X_pilot_record:
290               {
291                 fout << N_X_pilot << " ";
292                 break;
293               }
294             case N_Y_pilot_record:
295               {
296                 fout << N_Y_pilot << " ";
297                 break;
298               }
299             case N_Z_pilot_record:
300               {
301                 fout << N_Z_pilot << " ";
302                 break;
303               }
304             case N_X_cg_record:
305               {
306                 fout << N_X_cg << " ";
307                 break;
308               }
309             case N_Y_cg_record:
310               {
311                 fout << N_Y_cg << " ";
312                 break;
313               }
314             case N_Z_cg_record:
315               {
316                 fout << N_Z_cg << " ";
317                 break;
318               }
319             case P_dot_body_record:
320               {
321                 fout << P_dot_body << " ";
322                 break;
323               }
324             case Q_dot_body_record:
325               {
326                 fout << Q_dot_body << " ";
327                 break;
328               }
329             case R_dot_body_record:
330               {
331                 fout << R_dot_body << " ";
332                 break;
333               }
334
335               /********************** Velocities *********************/
336             case V_north_record:
337               {
338                 fout << V_north << " ";
339                 break;
340               }
341             case V_east_record:
342               {
343                 fout << V_east << " ";
344                 break;
345               }
346             case V_down_record:
347               {
348                 fout << V_down << " ";
349                 break;
350               }
351             case V_north_rel_ground_record:
352               {
353                 fout << V_north_rel_ground << " ";
354                 break;
355               }
356             case V_east_rel_ground_record:
357               {
358                 fout << V_east_rel_ground << " ";
359                 break;
360               }
361             case V_down_rel_ground_record:
362               {
363                 fout << V_down_rel_ground << " ";
364                 break;
365               }
366             case V_north_airmass_record:
367               {
368                 fout << V_north_airmass << " ";
369                 break;
370               }
371             case V_east_airmass_record:
372               {
373                 fout << V_east_airmass << " ";
374                 break;
375               }
376             case V_down_airmass_record:
377               {
378                 fout << V_down_airmass << " ";
379                 break;
380               }
381             case V_north_rel_airmass_record:
382               {
383                 fout << V_north_rel_airmass << " ";
384                 break;
385               }
386             case V_east_rel_airmass_record:
387               {
388                 fout << V_east_rel_airmass << " ";
389                 break;
390               }
391             case V_down_rel_airmass_record:
392               {
393                 fout << V_down_rel_airmass << " ";
394                 break;
395               }
396             case U_gust_record:
397               {
398                 fout << U_gust << " ";
399                 break;
400               }
401             case V_gust_record:
402               {
403                 fout << V_gust << " ";
404                 break;
405               }
406             case W_gust_record:
407               {
408                 fout << W_gust << " ";
409                 break;
410               }
411             case U_body_record:
412               {
413                 fout << U_body << " ";
414                 break;
415               }
416             case V_body_record:
417               {
418                 fout << V_body << " ";
419                 break;
420               }
421             case W_body_record:
422               {
423                 fout << W_body << " ";
424                 break;
425               }
426             case V_rel_wind_record:
427               {
428                 fout << V_rel_wind << " ";
429                 break;
430               }
431             case V_true_kts_record:
432               {
433                 fout << V_true_kts << " ";
434                 break;
435               }
436             case V_rel_ground_record:
437               {
438                 fout << V_rel_ground << " ";
439                 break;
440               }
441             case V_inertial_record:
442               {
443                 fout << V_inertial << " ";
444                 break;
445               }
446             case V_ground_speed_record:
447               {
448                 fout << V_ground_speed << " ";
449                 break;
450               }
451             case V_equiv_record:
452               {
453                 fout << V_equiv << " ";
454                 break;
455               }
456             case V_equiv_kts_record:
457               {
458                 fout << V_equiv_kts << " ";
459                 break;
460               }
461             case V_calibrated_record:
462               {
463                 fout << V_calibrated << " ";
464                 break;
465               }
466             case V_calibrated_kts_record:
467               {
468                 fout << V_calibrated_kts << " ";
469                 break;
470               }
471             case P_local_record:
472               {
473                 fout << P_local << " ";
474                 break;
475               }
476             case Q_local_record:
477               {
478                 fout << Q_local << " ";
479                 break;
480               }
481             case R_local_record:
482               {
483                 fout << R_local << " ";
484                 break;
485               }
486             case P_body_record:
487               {
488                 fout << P_body << " ";
489                 break;
490               }
491             case Q_body_record:
492               {
493                 fout << Q_body << " ";
494                 break;
495               }
496             case R_body_record:
497               {
498                 fout << R_body << " ";
499                 break;
500               }
501             case P_total_record:
502               {
503                 fout << P_total << " ";
504                 break;
505               }
506             case Q_total_record:
507               {
508                 fout << Q_total << " ";
509                 break;
510               }
511             case R_total_record:
512               {
513                 fout << R_total << " ";
514                 break;
515               }
516             case Phi_dot_record:
517               {
518                 fout << Phi_dot << " ";
519                 break;
520               }
521             case Theta_dot_record:
522               {
523                 fout << Theta_dot << " ";
524                 break;
525               }
526             case Psi_dot_record:
527               {
528                 fout << Psi_dot << " ";
529                 break;
530               }
531             case Latitude_dot_record:
532               {
533                 fout << Latitude_dot << " ";
534                 break;
535               }
536             case Longitude_dot_record:
537               {
538                 fout << Longitude_dot << " ";
539                 break;
540               }
541             case Radius_dot_record:
542               {
543                 fout << Radius_dot << " ";
544                 break;
545               }
546
547               /************************ Angles ***********************/
548             case Alpha_record:
549               {
550                 fout << Alpha << " ";
551                 break;
552               }
553             case Alpha_deg_record:
554               {
555                 fout << Alpha * RAD_TO_DEG << " ";
556                 break;
557               }
558             case Alpha_dot_record:
559               {
560                 fout << Alpha_dot << " ";
561                 break;
562               }
563             case Alpha_dot_deg_record:
564               {
565                 fout << Alpha_dot * RAD_TO_DEG << " ";
566                 break;
567               }
568             case Beta_record:
569               {
570                 fout << Beta << " ";
571                 break;
572               }
573             case Beta_deg_record:
574               {
575                 fout << Beta * RAD_TO_DEG << " ";
576                 break;
577               }
578             case Beta_dot_record:
579               {
580                 fout << Beta_dot << " ";
581                 break;
582               }
583             case Beta_dot_deg_record:
584               {
585                 fout << Beta_dot * RAD_TO_DEG << " ";
586                 break;
587               }
588             case Gamma_vert_record:
589               {
590                 fout << Gamma_vert_rad << " ";
591                 break;
592               }
593             case Gamma_vert_deg_record:
594               {
595                 fout << Gamma_vert_rad * RAD_TO_DEG << " ";
596                 break;
597               }
598             case Gamma_horiz_record:
599               {
600                 fout << Gamma_horiz_rad << " ";
601                 break;
602               }
603             case Gamma_horiz_deg_record:
604               {
605                 fout << Gamma_horiz_rad * RAD_TO_DEG << " ";
606                 break;
607               }
608
609               /**************** Atmospheric Properties ***************/
610             case Density_record:
611               {
612                 fout << Density << " ";
613                 break;
614               }
615             case V_sound_record:
616               {
617                 fout << V_sound << " ";
618                 break;
619               }
620             case Mach_number_record:
621               {
622                 fout << Mach_number << " ";
623                 break;
624               }
625             case Static_pressure_record:
626               {
627                 fout << Static_pressure << " ";
628                 break;
629               }
630             case Total_pressure_record:
631               {
632                 fout << Total_pressure << " ";
633                 break;
634               }
635             case Impact_pressure_record:
636               {
637                 fout << Impact_pressure << " ";
638                 break;
639               }
640             case Dynamic_pressure_record:
641               {
642                 fout << Dynamic_pressure << " ";
643                 break;
644               }
645             case Static_temperature_record:
646               {
647                 fout << Static_temperature << " ";
648                 break;
649               }
650             case Total_temperature_record:
651               {
652                 fout << Total_temperature << " ";
653                 break;
654               }
655
656               /******************** Earth Properties *****************/
657             case Gravity_record:
658               {
659                 fout << Gravity << " ";
660                 break;
661               }
662             case Sea_level_radius_record:
663               {
664                 fout << Sea_level_radius << " ";
665                 break;
666               }
667             case Earth_position_angle_record:
668               {
669                 fout << Earth_position_angle << " ";
670                 break;
671               }
672             case Runway_altitude_record:
673               {
674                 fout << Runway_altitude << " ";
675                 break;
676               }
677             case Runway_latitude_record:
678               {
679                 fout << Runway_latitude << " ";
680                 break;
681               }
682             case Runway_longitude_record:
683               {
684                 fout << Runway_longitude << " ";
685                 break;
686               }
687             case Runway_heading_record:
688               {
689                 fout << Runway_heading << " ";
690                 break;
691               }
692             case Radius_to_rwy_record:
693               {
694                 fout << Radius_to_rwy << " ";
695                 break;
696               }
697             case D_pilot_north_of_rwy_record:
698               {
699                 fout << D_pilot_north_of_rwy << " ";
700                 break;
701               }
702             case D_pilot_east_of_rwy_record:
703               {
704                 fout << D_pilot_east_of_rwy << " ";
705                 break;
706               }
707             case D_pilot_above_rwy_record:
708               {
709                 fout << D_pilot_above_rwy << " ";
710                 break;
711               }
712             case X_pilot_rwy_record:
713               {
714                 fout << X_pilot_rwy << " ";
715                 break;
716               }
717             case Y_pilot_rwy_record:
718               {
719                 fout << Y_pilot_rwy << " ";
720                 break;
721               }
722             case H_pilot_rwy_record:
723               {
724                 fout << H_pilot_rwy << " ";
725                 break;
726               }
727             case D_cg_north_of_rwy_record:
728               {
729                 fout << D_cg_north_of_rwy << " ";
730                 break;
731               }
732             case D_cg_east_of_rwy_record:
733               {
734                 fout << D_cg_east_of_rwy << " ";
735                 break;
736               }
737             case D_cg_above_rwy_record:
738               {
739                 fout << D_cg_above_rwy << " ";
740                 break;
741               }
742             case X_cg_rwy_record:
743               {
744                 fout << X_cg_rwy << " ";
745                 break;
746               }
747             case Y_cg_rwy_record:
748               {
749                 fout << Y_cg_rwy << " ";
750                 break;
751               }
752             case H_cg_rwy_record:
753               {
754                 fout << H_cg_rwy << " ";
755                 break;
756               }
757
758               /********************* Engine Inputs *******************/
759             case Throttle_3_record:
760               {
761                 fout << Throttle[3] << " ";
762                 break;
763               }
764             case Throttle_pct_record:
765               {
766                 fout << Throttle_pct << " ";
767                 break;
768               }
769
770               /******************** Control Inputs *******************/
771             case Long_control_record:
772               {
773                 fout << Long_control << " ";
774                 break;
775               }
776             case Long_trim_record:
777               {
778                 fout << Long_trim << " ";
779                 break;
780               }
781             case Long_trim_deg_record:
782               {
783                 fout << Long_trim * RAD_TO_DEG << " ";
784                 break;
785               }
786             case elevator_record:
787               {
788                 fout << elevator << " ";
789                 break;
790               }
791             case elevator_deg_record:
792               {
793                 fout << elevator * RAD_TO_DEG << " ";
794                 break;
795               }
796             case Lat_control_record:
797               {
798                 fout << Long_control << " ";
799                 break;
800               }
801             case aileron_record:
802               {
803                 fout << aileron << " ";
804                 break;
805               }
806             case aileron_deg_record:
807               {
808                 fout << aileron * RAD_TO_DEG << " ";
809                 break;
810               }
811             case Rudder_pedal_record:
812               {
813                 fout << Long_control << " ";
814                 break;
815               }
816             case rudder_record:
817               {
818                 fout << rudder << " ";
819                 break;
820               }
821             case rudder_deg_record:
822               {
823                 fout << rudder * RAD_TO_DEG << " ";
824                 break;
825               }
826             case Flap_handle_record:
827               {
828                 fout << flap << " ";
829                 break;
830               }
831             case flap_record:
832               {
833                 fout << flap << " ";
834                 break;
835               }
836             case flap_deg_record:
837               {
838                 fout << flap * RAD_TO_DEG << " ";
839                 break;
840               }
841
842               /****************** Aero Coefficients ******************/
843             case CD_record:
844               {
845                 fout << CD << " ";
846                 break;
847               }
848             case CDfaI_record:
849               {
850                 fout << CDfaI << " ";
851                 break;
852               }
853             case CDfCLI_record:
854               {
855                 fout << CDfCLI << " ";
856                 break;
857               }
858             case CDfadeI_record:
859               {
860                 fout << CDfadeI << " ";
861                 break;
862               }
863             case CDfdfI_record:
864               {
865                 fout << CDfdfI << " ";
866                 break;
867               }
868             case CDfadfI_record:
869               {
870                 fout << CDfadfI << " ";
871                 break;
872               }
873             case CX_record:
874               {
875                 fout << CX << " ";
876                 break;
877               }
878             case CL_record:
879               {
880                 fout << CL << " ";
881                 break;
882               }
883             case CLfaI_record:
884               {
885                 fout << CLfaI << " ";
886                 break;
887               }
888             case CLfadeI_record:
889               {
890                 fout << CLfadeI << " ";
891                 break;
892               }
893             case CLfdfI_record:
894               {
895                 fout << CLfdfI << " ";
896                 break;
897               }
898             case CLfadfI_record:
899               {
900                 fout << CLfadfI << " ";
901                 break;
902               }
903             case CZ_record:
904               {
905                 fout << CZ << " ";
906                 break;
907               }
908             case Cm_record:
909               {
910                 fout << Cm << " ";
911                 break;
912               }
913             case CmfaI_record:
914               {
915                 fout << CmfaI << " ";
916                 break;
917               }
918             case CmfadeI_record:
919               {
920                 fout << CmfadeI << " ";
921                 break;
922               }
923             case CmfdfI_record:
924               {
925                 fout << CmfdfI << " ";
926                 break;
927               }
928             case CmfadfI_record:
929               {
930                 fout << CmfadfI << " ";
931                 break;
932               }
933             case CY_record:
934               {
935                 fout << CY  << " ";
936                 break;
937               }
938             case CYfadaI_record:
939               {
940                 fout << CYfadaI << " ";
941                 break;
942               }
943             case CYfbetadrI_record:
944               {
945                 fout << CYfbetadrI << " ";
946                 break;
947               }
948             case Cl_record:
949               {
950                 fout << Cl << " ";
951                 break;
952               }
953             case ClfadaI_record:
954               {
955                 fout << ClfadaI << " ";
956                 break;
957               }
958             case ClfbetadrI_record:
959               {
960                 fout << ClfbetadrI << " ";
961                 break;
962               }
963             case Cn_record:
964               {
965                 fout << Cn << " ";
966                 break;
967               }
968             case CnfadaI_record:
969               {
970                 fout << CnfadaI << " ";
971                 break;
972               }
973             case CnfbetadrI_record:
974               {
975                 fout << CnfbetadrI << " ";
976                 break;
977               }
978
979               /******************** Ice Detection ********************/
980             case CLclean_wing_record:
981               {
982                 fout << CLclean_wing << " ";
983                 break;
984               }
985             case CLiced_wing_record:
986               {
987                 fout << CLiced_wing << " ";
988                 break;
989               }
990             case CLclean_tail_record:
991               {
992                 fout << CLclean_tail << " ";
993                 break;
994               }
995             case CLiced_tail_record:
996               {
997                 fout << CLiced_tail << " ";
998                 break;
999               }
1000             case Lift_clean_wing_record:
1001               {
1002                 fout << Lift_clean_wing << " ";
1003                 break;
1004               }
1005             case Lift_iced_wing_record:
1006               {
1007                 fout << Lift_iced_wing << " ";
1008                 break;
1009               }
1010             case Lift_clean_tail_record:
1011               {
1012                 fout << Lift_clean_tail << " ";
1013                 break;
1014               }
1015             case Lift_iced_tail_record:
1016               {
1017                 fout << Lift_iced_tail << " ";
1018                 break;
1019               }
1020             case Gamma_clean_wing_record:
1021               {
1022                 fout << Gamma_clean_wing << " ";
1023                 break;
1024               }
1025             case Gamma_iced_wing_record:
1026               {
1027                 fout << Gamma_iced_wing << " ";
1028                 break;
1029               }
1030             case Gamma_clean_tail_record:
1031               {
1032                 fout << Gamma_clean_tail << " ";
1033                 break;
1034               }
1035             case Gamma_iced_tail_record:
1036               {
1037                 fout << Gamma_iced_tail << " ";
1038                 break;
1039               }
1040             case w_clean_wing_record:
1041               {
1042                 fout << w_clean_wing << " ";
1043                 break;
1044               }
1045             case w_iced_wing_record:
1046               {
1047                 fout << w_iced_wing << " ";
1048                 break;
1049               }
1050             case w_clean_tail_record:
1051               {
1052                 fout << w_clean_tail << " ";
1053                 break;
1054               }
1055             case w_iced_tail_record:
1056               {
1057                 fout << w_iced_tail << " ";
1058                 break;
1059               }
1060             case V_total_clean_wing_record:
1061               {
1062                 fout << V_total_clean_wing << " ";
1063                 break;
1064               }
1065             case V_total_iced_wing_record:
1066               {
1067                 fout << V_total_iced_wing << " ";
1068                 break;
1069               }
1070             case V_total_clean_tail_record:
1071               {
1072                 fout << V_total_clean_tail << " ";
1073                 break;
1074               }
1075             case V_total_iced_tail_record:
1076               {
1077                 fout << V_total_iced_tail << " ";
1078                 break;
1079               }
1080             case beta_flow_clean_wing_record:
1081               {
1082                 fout << beta_flow_clean_wing << " ";
1083                 break;
1084               }
1085             case beta_flow_clean_wing_deg_record:
1086               {
1087                 fout << beta_flow_clean_wing * RAD_TO_DEG << " ";
1088                 break;
1089               }
1090             case beta_flow_iced_wing_record:
1091               {
1092                 fout << beta_flow_iced_wing << " ";
1093                 break;
1094               }
1095             case beta_flow_iced_wing_deg_record:
1096               {
1097                 fout << beta_flow_iced_wing * RAD_TO_DEG << " ";
1098                 break;
1099               }
1100             case beta_flow_clean_tail_record:
1101               {
1102                 fout << beta_flow_clean_tail << " ";
1103                 break;
1104               }
1105             case beta_flow_clean_tail_deg_record:
1106               {
1107                 fout << beta_flow_clean_tail * RAD_TO_DEG << " ";
1108                 break;
1109               }
1110             case beta_flow_iced_tail_record:
1111               {
1112                 fout << beta_flow_iced_tail << " ";
1113                 break;
1114               }
1115             case beta_flow_iced_tail_deg_record:
1116               {
1117                 fout << beta_flow_iced_tail * RAD_TO_DEG << " ";
1118                 break;
1119               }
1120             case Dbeta_flow_wing_record:
1121               {
1122                 fout << Dbeta_flow_wing << " ";
1123                 break;
1124               }
1125             case Dbeta_flow_wing_deg_record:
1126               {
1127                 fout << Dbeta_flow_wing * RAD_TO_DEG << " ";
1128                 break;
1129               }
1130             case Dbeta_flow_tail_record:
1131               {
1132                 fout << Dbeta_flow_tail << " ";
1133                 break;
1134               }
1135             case Dbeta_flow_tail_deg_record:
1136               {
1137                 fout << Dbeta_flow_tail * RAD_TO_DEG << " ";
1138                 break;
1139               }
1140             case pct_beta_flow_wing_record:
1141               {
1142                 fout << pct_beta_flow_wing << " ";
1143                 break;
1144               }
1145             case pct_beta_flow_tail_record:
1146               {
1147                 fout << pct_beta_flow_tail << " ";
1148                 break;
1149               }
1150
1151               /************************ Forces ***********************/
1152             case F_X_wind_record:
1153               {
1154                 fout << F_X_wind << " ";
1155                 break;
1156               }
1157             case F_Y_wind_record:
1158               {
1159                 fout << F_Y_wind << " ";
1160                 break;
1161               }
1162             case F_Z_wind_record:
1163               {
1164                 fout << F_Z_wind << " ";
1165                 break;
1166               }
1167             case F_X_aero_record:
1168               {
1169                 fout << F_X_aero << " ";
1170                 break;
1171               }
1172             case F_Y_aero_record:
1173               {
1174                 fout << F_Y_aero << " ";
1175                 break;
1176               }
1177             case F_Z_aero_record:
1178               {
1179                 fout << F_Z_aero << " ";
1180                 break;
1181               }
1182             case F_X_engine_record:
1183               {
1184                 fout << F_X_engine << " ";
1185                 break;
1186               }
1187             case F_Y_engine_record:
1188               {
1189                 fout << F_Y_engine << " ";
1190                 break;
1191               }
1192             case F_Z_engine_record:
1193               {
1194                 fout << F_Z_engine << " ";
1195                 break;
1196               }
1197             case F_X_gear_record:
1198               {
1199                 fout << F_X_gear << " ";
1200                 break;
1201               }
1202             case F_Y_gear_record:
1203               {
1204                 fout << F_Y_gear << " ";
1205                 break;
1206               }
1207             case F_Z_gear_record:
1208               {
1209                 fout << F_Z_gear << " ";
1210                 break;
1211               }
1212             case F_X_record:
1213               {
1214                 fout << F_X << " ";
1215                 break;
1216               }
1217             case F_Y_record:
1218               {
1219                 fout << F_Y << " ";
1220                 break;
1221               }
1222             case F_Z_record:
1223               {
1224                 fout << F_Z << " ";
1225                 break;
1226               }
1227             case F_north_record:
1228               {
1229                 fout << F_north << " ";
1230                 break;
1231               }
1232             case F_east_record:
1233               {
1234                 fout << F_east << " ";
1235                 break;
1236               }
1237             case F_down_record:
1238               {
1239                 fout << F_down << " ";
1240                 break;
1241               }
1242
1243               /*********************** Moments ***********************/
1244             case M_l_aero_record:
1245               {
1246                 fout << M_l_aero << " ";
1247                 break;
1248               }
1249             case M_m_aero_record:
1250               {
1251                 fout << M_m_aero << " ";
1252                 break;
1253               }
1254             case M_n_aero_record:
1255               {
1256                 fout << M_n_aero << " ";
1257                 break;
1258               }
1259             case M_l_engine_record:
1260               {
1261                 fout << M_l_engine << " ";
1262                 break;
1263               }
1264             case M_m_engine_record:
1265               {
1266                 fout << M_m_engine << " ";
1267                 break;
1268               }
1269             case M_n_engine_record:
1270               {
1271                 fout << M_n_engine << " ";
1272                 break;
1273               }
1274             case M_l_gear_record:
1275               {
1276                 fout << M_l_gear << " ";
1277                 break;
1278               }
1279             case M_m_gear_record:
1280               {
1281                 fout << M_m_gear << " ";
1282                 break;
1283               }
1284             case M_n_gear_record:
1285               {
1286                 fout << M_n_gear << " ";
1287                 break;
1288               }
1289             case M_l_rp_record:
1290               {
1291                 fout << M_l_rp << " ";
1292                 break;
1293               }
1294             case M_m_rp_record:
1295               {
1296                 fout << M_m_rp << " ";
1297                 break;
1298               }
1299             case M_n_rp_record:
1300               {
1301                 fout << M_n_rp << " ";
1302                 break;
1303               }
1304             };
1305         } // end record map
1306     }
1307   recordStep++;
1308 }
1309
1310 // end uiuc_recorder.cpp