00001 
00002 
00003 
00004 
00005 
00006 #include "cddefines.h"
00007 #include "lines.h"
00008 #include "prt.h"
00009 
00010 t_prt prt;
00011 
00012 
00013 void prt_wl( FILE *ioOUT , realnum wl )
00014 {
00015         char chString[100];
00016         DEBUG_ENTRY( "prt_wl()" );
00017 
00018         sprt_wl( chString , wl );
00019 
00020         fprintf(ioOUT, "%s", chString );
00021         return;
00022 }
00023 
00024 
00025 void sprt_wl( char *chString , realnum wl )
00026 {
00027         char chUnits[10];
00028 
00029         DEBUG_ENTRY( "sprt_wl()" );
00030 
00031         
00032         if( wl > 1e8 )
00033         {
00034                 
00035                 strcpy( chUnits , "c" );
00036                 wl /= 1e8;
00037         }
00038         else if( wl > 1e4 )
00039         {
00040                 
00041                 strcpy( chUnits , "m" );
00042                 wl /= 1e4;
00043         }
00044         else if( wl == 0. )
00045         {
00046                 strcpy( chUnits , " " );
00047         }
00048         else
00049         {
00050                 
00051                 strcpy( chUnits , "A" );
00052         }
00053 
00054         
00055         if( LineSave.sig_figs == 4 )
00056         {
00057                 if( wl==0. )
00058                 {
00059                         sprintf(chString, "%5i", 0 );
00060                 }
00061                 else if( wl<10. )
00062                 {
00063                         sprintf(chString, "%5.3f", wl );
00064                 }
00065                 else if( wl<100. )
00066                 {
00067                         sprintf(chString, "%5.2f", wl );
00068                 }
00069                 else if( wl < 1e3 )
00070                 {
00071                         sprintf(chString, "%5.1f", wl );
00072                 }
00073                 else if( wl < 1e4 )
00074                 {
00075                         sprintf(chString, "%5.0f", wl );
00076                 }
00077                 else if( wl < 1e5 )
00078                 {
00079                         sprintf(chString, "%5i", (int)wl );
00080                 }
00081                 else
00082                 {
00083                         TotalInsanity();
00084                 }
00085         }
00086         else if( LineSave.sig_figs == 5 )
00087         {
00088                 
00089                 if( wl==0. )
00090                 {
00091                         sprintf(chString, "%5i", 0 );
00092                 }
00093                 else if( wl<10. )
00094                 {
00095                         sprintf(chString, "%5.4f", wl );
00096                 }
00097                 else if( wl<100. )
00098                 {
00099                         sprintf(chString, "%5.3f", wl );
00100                 }
00101                 else if( wl < 1e3 )
00102                 {
00103                         sprintf(chString, "%5.2f", wl );
00104                 }
00105                 else if( wl < 1e4 )
00106                 {
00107                         sprintf(chString, "%5.1f", wl );
00108                 }
00109                 else if( wl < 1e5 )
00110                 {
00111                         sprintf(chString, "%5.0f", wl );
00112                 }
00113                 else if( wl < 1e6 )
00114                 {
00115                         sprintf(chString, "%5i", (int)wl );
00116                 }
00117                 else
00118                 {
00119                         TotalInsanity();
00120                 }
00121         }
00122         else
00123         {
00124                 ASSERT( LineSave.sig_figs == 6 );
00125                 
00126                 if( wl==0. )
00127                 {
00128                         sprintf(chString, "%6i", 0 );
00129                 }
00130                 else if( wl<10. )
00131                 {
00132                         sprintf(chString, "%6.5f", wl );
00133                 }
00134                 else if( wl<100. )
00135                 {
00136                         sprintf(chString, "%6.4f", wl );
00137                 }
00138                 else if( wl < 1e3 )
00139                 {
00140                         sprintf(chString, "%6.3f", wl );
00141                 }
00142                 else if( wl < 1e4 )
00143                 {
00144                         sprintf(chString, "%6.2f", wl );
00145                 }
00146                 else if( wl < 1e5 )
00147                 {
00148                         sprintf(chString, "%6.1f", wl );
00149                 }
00150                 else if( wl < 1e6 )
00151                 {
00152                         sprintf(chString, "%6.0f", wl );
00153                 }
00154                 else if( wl < 1e7 )
00155                 {
00156                         sprintf(chString, "%6i", (int)wl );
00157                 }
00158                 else
00159                 {
00160                         TotalInsanity();
00161                 }
00162         }
00163         strcat( chString , chUnits );
00164         return;
00165 }
00166 
00167 
00168 void prt_LineLabels(
00169         
00170         FILE * ioOUT ,
00171         
00172 
00173         bool lgPrintAll )
00174 {
00175         long int i;
00176 
00177         DEBUG_ENTRY( "prt_LineLabels()" );
00178 
00179         for( i=0; i < LineSave.nsum; i++ )
00180         {
00181                 if( strcmp( LineSv[i].chALab , "####" )==0 )
00182                 {
00183                         
00184                         fprintf( ioOUT, "####\t%s",LineSave.chHoldComments[(int)LineSv[i].wavelength] ); 
00185                 }
00186                 else
00187                 {
00188                         if( !lgPrintAll &&
00189                                 (strcmp( LineSv[i].chALab , "Inwd" )==0 ||
00190                                  strcmp( LineSv[i].chALab , "Coll" )==0 ||
00191                                  strcmp( LineSv[i].chALab , "Pump" )==0 ||
00192                                  strcmp( LineSv[i].chALab , "Heat" )==0)
00193                                 )
00194                                 
00195 
00196 
00197                                 continue;
00198                         
00199                         fprintf( ioOUT, "%li\t%s\t", 
00200                                 i,
00201                                 LineSv[i].chALab );
00202                         
00203                         prt_wl( ioOUT, LineSv[i].wavelength );
00204                         
00205                         long int j = 0;
00206                         while( LineSv[i].chComment[j]!='\0' && LineSv[i].chComment[j]==' ')
00207                                 ++j;
00208                         
00209                         fprintf( ioOUT , "\t%s" , &LineSv[i].chComment[j] );
00210                 }
00211                 fprintf( ioOUT, "\n" );
00212         }
00213         return;
00214 }