00001 
00002 
00003 
00004 #include "cddefines.h"
00005 #include "taulines.h"
00006 #include "h2.h"
00007 #include "iso.h"
00008 #include "lines_service.h"
00009 #include "dense.h"
00010 #include "prt.h"
00011 #include "mole.h"
00012 
00013 void prtmet(void)
00014 {
00015         long int i,
00016                 nelem , 
00017                 ipHi , 
00018                 ipLo , 
00019                 ipISO;
00020 
00021         DEBUG_ENTRY( "prtmet()" );
00022 
00023         
00024 
00025         if( prt.lgPrtTau )
00026         {
00027                 fprintf( ioQQQ, "                                                    Line Optical Depths\n");
00028 
00029                 
00030                 prme("IN",&TauLines[0]);
00031 
00032                 
00033                 for( ipISO=ipH_LIKE; ipISO<NISO; ++ipISO )
00034                 {
00035                         for( nelem=ipISO; nelem < LIMELM; nelem++ )
00036                         {
00037                                 if( dense.lgElmtOn[nelem] )
00038                                 {
00039                                          
00040                                         for( ipLo=0; ipLo < iso.numLevels_local[ipISO][nelem]-1; ipLo++ )
00041                                         {
00042                                                 for( ipHi=ipLo+1; ipHi < iso.numLevels_local[ipISO][nelem]; ipHi++ )
00043                                                 {
00044                                                         prme(" c",&Transitions[ipISO][nelem][ipHi][ipLo]);
00045                                                 }
00046                                         }
00047                                 }
00048                         }
00049                 }
00050 
00051                 
00052                 for( i=1; i <= nLevel1; i++ )
00053                 {
00054                         prme(" c",&TauLines[i]);
00055                 }
00056 
00057                 for( i=0; i < nWindLine; i++ )
00058                 {
00059                         if( TauLine2[i].Hi->IonStg < TauLine2[i].Hi->nelem+1-NISO )
00060                         {
00061                                 prme(" c",&TauLine2[i]);
00062                         }
00063                 }
00064 
00065                 for( i=0; i < nUTA; i++ )
00066                 {
00067                         if( UTALines[i].Emis->Aul > 0. )
00068                                 prme(" c",&UTALines[i]);
00069                 }
00070 
00071                 
00072                 H2_Prt_line_tau();
00073 
00074                 for( i=0; i < nCORotate; i++ )
00075                 {
00076                         prme(" c",&C12O16Rotate[i]);
00077                 }
00078 
00079                 for( i=0; i < nCORotate; i++ )
00080                 {
00081                         prme(" c",&C13O16Rotate[i]);
00082                 }
00083 
00084                 for( i=0; i < nHFLines; i++ )
00085                 {
00086                         prme(" c",&HFLines[i]);
00087                 }
00088 
00089                 
00090                 for( i=0; i < linesAdded2; i++)
00091                 {
00092                         prme("DB",atmolEmis[i].tran);
00093                 }
00094 
00095                 fprintf( ioQQQ, "\n");
00096         }
00097         return;
00098 }
00099 
00100 
00101 void prme(
00102   
00103 
00104 
00105 
00106 
00107   const char *chDoIt, 
00108   transition * t)
00109 {
00110         char chAtMolWL[20],chAtMol[35];
00111         static long int n ;
00112 
00113         DEBUG_ENTRY( "prme()" );
00114 
00115         if( t->ipCont <= 0 )
00116         {
00117                 
00118                 return;
00119         }
00120 
00121         
00122         if( strncmp(chDoIt,"IN",2) == 0 )
00123         {
00124                 n = 0;
00125         }
00126 
00127         else if( strncmp(chDoIt,"DB",2) == 0)
00128         {
00129                 
00130 
00131 
00132                 if( t->Emis->TauIn > prt.PrtTauFnt || t->Emis->TauIn < -1e-5 )
00133                 {
00134                         sprt_wl(chAtMolWL,t->WLAng);
00135                         strcpy(chAtMol,t->Hi->chLabel);
00136                         strcat(chAtMol," ");
00137                         strcat(chAtMol,chAtMolWL);
00138                         fprintf( ioQQQ, "  %10.15s",chAtMol);
00139                         fprintf( ioQQQ,PrintEfmt("%9.2e", t->Emis->TauIn));
00140                         fprintf( ioQQQ, " ");
00141                         
00142                         ++n;
00143                         if(n == 6)
00144                         {
00145                                 n = 0;
00146                                 fprintf( ioQQQ, " \n");
00147                         }
00148                 }
00149         }
00150 
00151         else if( strncmp(chDoIt," c",2) == 0)
00152         {
00153                 
00154                 if( t->Emis->TauIn > prt.PrtTauFnt || t->Emis->TauIn < -1e-5 )
00155                 {
00156                         
00157                         fprintf( ioQQQ, "  %10.10s",chLineLbl(t));
00158                         fprintf( ioQQQ, PrintEfmt("%9.2e", t->Emis->TauIn ));
00159 
00160                         
00161                         ++n;
00162                         if(n == 6)
00163                         {
00164                                 n = 0;
00165                                 fprintf( ioQQQ, " \n");
00166                         }
00167                 }
00168         }
00169         else
00170                 TotalInsanity();
00171         return;
00172 }