00001
00002
00003
00004 #include "cddefines.h"
00005 #include "taulines.h"
00006 #include "iso.h"
00007 #include "opacity.h"
00008 #include "dense.h"
00009 #include "colden.h"
00010 #include "elementnames.h"
00011 #include "geometry.h"
00012 #include "prt.h"
00013
00014 void PrtAllTau(void)
00015 {
00016 long int i,
00017 n,
00018 nelem;
00019 realnum fcon,
00020 flin;
00021
00022 DEBUG_ENTRY( "PrtAllTau()" );
00023
00024
00025
00026
00027 if( geometry.lgSphere )
00028 {
00029 fcon = 2.;
00030 if( geometry.lgStatic )
00031 {
00032 flin = 2.;
00033 }
00034 else
00035 {
00036 flin = 1.;
00037 }
00038 }
00039 else
00040 {
00041 fcon = 1.;
00042 flin = 1.;
00043 }
00044
00045
00046
00047
00048 fprintf( ioQQQ, "\n Contin Optical Depths: COMP:");
00049
00050 fprintf( ioQQQ,PrintEfmt("%9.2e", opac.telec));
00051 fprintf( ioQQQ, " H-:");
00052 fprintf( ioQQQ,PrintEfmt("%9.2e",opac.thmin ));
00053
00054 fprintf( ioQQQ, " R(1300):");
00055 fprintf( ioQQQ,PrintEfmt("%9.2e", colden.colden[ipCOL_H0]*6.71e-24));
00056
00057 fprintf( ioQQQ, " H2+:");
00058 fprintf( ioQQQ,PrintEfmt("%9.2e", colden.colden[ipCOL_H2p]*7e-18));
00059
00060 fprintf( ioQQQ, " Pfa:");
00061
00062 if( iso.numLevels_local[ipH_LIKE][ipHYDROGEN] > ipH5p )
00063 {
00064 ASSERT( Transitions[ipH_LIKE][ipHYDROGEN][ipH5p][ipH4s].ipCont > 0 );
00065 PrintE82( ioQQQ , opac.TauTotalGeo[0][Transitions[ipH_LIKE][ipHYDROGEN][ipH5p][ipH4s].ipCont-1]/fcon);
00066 }
00067 else
00068 {
00069 PrintE82( ioQQQ , 0.);
00070 }
00071 fprintf( ioQQQ, "\n" );
00072
00073 fprintf( ioQQQ, " Pa:");
00074
00075 if( iso.numLevels_local[ipH_LIKE][ipHYDROGEN] > ipH4p )
00076 {
00077 fprintf( ioQQQ,PrintEfmt("%9.2e", opac.TauTotalGeo[0][Transitions[ipH_LIKE][ipHYDROGEN][ipH4p][ipH3s].ipCont-1]/fcon));
00078 }
00079 else
00080 {
00081 PrintE82( ioQQQ , 0.);
00082 }
00083
00084 fprintf( ioQQQ, " Ba:");
00085
00086 if( iso.numLevels_local[ipH_LIKE][ipHYDROGEN] > 3 )
00087 {
00088 fprintf( ioQQQ,PrintEfmt("%9.2e", opac.TauTotalGeo[0][Transitions[ipH_LIKE][ipHYDROGEN][ipH3p][ipH2s].ipCont-1]/fcon));
00089 }
00090 else
00091 {
00092 PrintE82( ioQQQ , 0.);
00093 }
00094
00095 fprintf( ioQQQ, " Hb:");
00096
00097 if( iso.numLevels_local[ipH_LIKE][ipHYDROGEN] > 4 )
00098 {
00099 fprintf( ioQQQ,PrintEfmt("%9.2e", opac.TauTotalGeo[0][Transitions[ipH_LIKE][ipHYDROGEN][ipH4p][ipH2s].ipCont-1]/fcon));
00100 }
00101 else
00102 {
00103 PrintE82( ioQQQ , 0.);
00104 }
00105
00106 fprintf( ioQQQ, " La:");
00107 fprintf( ioQQQ,PrintEfmt("%9.2e", opac.TauTotalGeo[0][Transitions[ipH_LIKE][ipHYDROGEN][ipH2p][ipH1s].ipCont-1]/fcon));
00108
00109 fprintf( ioQQQ, " 1r:");
00110 PrintE93( ioQQQ , opac.TauTotalGeo[0][iso.ipIsoLevNIonCon[ipH_LIKE][ipHYDROGEN][ipH1s]-1]/fcon);
00111
00112 fprintf( ioQQQ, " 1.8:");
00113 PrintE82( ioQQQ , opac.TauTotalGeo[0][iso.ipIsoLevNIonCon[ipHE_LIKE][ipHELIUM][0]-1]/fcon);
00114
00115 fprintf( ioQQQ, " 4.:");
00116 PrintE93( ioQQQ , opac.TauTotalGeo[0][iso.ipIsoLevNIonCon[ipH_LIKE][1][ipH1s]-1]/fcon);
00117 fprintf( ioQQQ, "\n");
00118
00119
00120 prtmet();
00121
00122
00123 for( nelem=ipHYDROGEN; nelem<=ipHELIUM; ++nelem )
00124 {
00125
00126 if( dense.lgElmtOn[nelem] )
00127 {
00128 # define NUMB_PER_LINE 8
00129 fprintf( ioQQQ, "\n Old, new %s%2li continuum optical depths:\n",
00130 elementnames.chElementSym[nelem] ,
00131 nelem+1);
00132
00133
00134 for( i=1; i>=0; --i )
00135 {
00136
00137
00138 for( n=ipH1s; n < iso.numLevels_local[ipH_LIKE][nelem]; n++ )
00139 {
00140 if( n==ipH2s )
00141 continue;
00142 if( n%NUMB_PER_LINE ==1)
00143 fprintf(ioQQQ,"\n");
00144
00145
00146 fprintf( ioQQQ , "%6ld",MAX2(1,n));
00147 fprintf( ioQQQ,PrintEfmt("%9.2e", opac.TauAbsGeo[i][iso.ipIsoLevNIonCon[ipH_LIKE][nelem][n]-1]/fcon));
00148 }
00149 fprintf( ioQQQ, "\n" );
00150 }
00151
00152
00153 fprintf( ioQQQ, "\n Old, new %s%2li line optical depths:\n",
00154 elementnames.chElementSym[nelem] ,
00155 nelem+1);
00156
00157 fprintf( ioQQQ, "%3i-%2i",2, 1 );
00158 fprintf( ioQQQ,PrintEfmt("%9.2e", Transitions[ipH_LIKE][nelem][ipH2p][ipH1s].Emis->TauTot/flin ));
00159
00160
00161 for( n=3; n <= iso.n_HighestResolved_local[ipH_LIKE][nelem]; n++ )
00162 {
00163 if( n%NUMB_PER_LINE ==1)
00164 fprintf(ioQQQ,"\n");
00165 fprintf( ioQQQ, "%3ld-%2ld",n, n-1 );
00166 fprintf( ioQQQ,PrintEfmt("%9.2e",
00167
00168 Transitions[ipH_LIKE][nelem][ iso.QuantumNumbers2Index[ipH_LIKE][nelem][n][1][2] ][ iso.QuantumNumbers2Index[ipH_LIKE][nelem][n-1][0][2] ].Emis->TauTot/flin ));
00169 }
00170 for( n=iso.numLevels_local[ipH_LIKE][nelem] - iso.nCollapsed_local[ipH_LIKE][nelem]; n < iso.numLevels_local[ipH_LIKE][nelem]; n++ )
00171 {
00172 if( StatesElem[ipH_LIKE][nelem][n].n % NUMB_PER_LINE ==1)
00173 fprintf(ioQQQ,"\n");
00174 fprintf( ioQQQ, "%3ld-%2ld", StatesElem[ipH_LIKE][nelem][n].n, StatesElem[ipH_LIKE][nelem][n-1].n );
00175 fprintf( ioQQQ,PrintEfmt("%9.2e", Transitions[ipH_LIKE][nelem][n][n-1].Emis->TauTot/flin ));
00176 }
00177
00178 fprintf( ioQQQ, "\n" );
00179
00180 fprintf( ioQQQ, "%3i-%2i",2, 1 );
00181 fprintf( ioQQQ,PrintEfmt("%9.2e", Transitions[ipH_LIKE][nelem][ipH2p][ipH1s].Emis->TauIn/flin ));
00182
00183 for( n=3; n <= iso.n_HighestResolved_local[ipH_LIKE][nelem]; n++ )
00184 {
00185 if( n%NUMB_PER_LINE ==1)
00186 fprintf(ioQQQ,"\n");
00187 fprintf( ioQQQ, "%3ld-%2ld",n, n-1 );
00188 fprintf( ioQQQ,PrintEfmt("%9.2e",
00189
00190 Transitions[ipH_LIKE][nelem][ iso.QuantumNumbers2Index[ipH_LIKE][nelem][n][1][2] ][ iso.QuantumNumbers2Index[ipH_LIKE][nelem][n-1][0][2] ].Emis->TauIn/flin ));
00191 }
00192 for( n=iso.numLevels_local[ipH_LIKE][nelem] - iso.nCollapsed_local[ipH_LIKE][nelem]; n < iso.numLevels_local[ipH_LIKE][nelem]; n++ )
00193 {
00194 if( StatesElem[ipH_LIKE][nelem][n].n % NUMB_PER_LINE ==1)
00195 fprintf(ioQQQ,"\n");
00196 fprintf( ioQQQ, "%3ld-%2ld", StatesElem[ipH_LIKE][nelem][n].n, StatesElem[ipH_LIKE][nelem][n-1].n );
00197 fprintf( ioQQQ,PrintEfmt("%9.2e", Transitions[ipH_LIKE][nelem][n][n-1].Emis->TauIn/flin ));
00198 }
00199 fprintf( ioQQQ, "\n" );
00200 }
00201 }
00202
00203
00204
00205
00206 if( dense.lgElmtOn[ipHELIUM] )
00207 {
00208 fprintf( ioQQQ, "\n Old He Is optical depths:" );
00209 for( i=0; i < 5; i++ )
00210 {
00211 fprintf( ioQQQ, "%5ld", i+1 );
00212 fprintf( ioQQQ,PrintEfmt("%9.2e", opac.TauAbsGeo[1][iso.ipIsoLevNIonCon[ipHE_LIKE][ipHELIUM][i]-1]/fcon) );
00213 }
00214 fprintf( ioQQQ, "\n" );
00215
00216 fprintf( ioQQQ, " New He Is optical depths:" );
00217 for( i=0; i < 5; i++ )
00218 {
00219 fprintf( ioQQQ, "%5ld", i+1 );
00220 fprintf( ioQQQ,PrintEfmt("%9.2e", opac.TauAbsGeo[0][iso.ipIsoLevNIonCon[ipHE_LIKE][ipHELIUM][i]-1]/fcon ));
00221 }
00222 fprintf( ioQQQ, "\n" );
00223
00224
00225
00226 fprintf( ioQQQ, " Old He Is Lines:" );
00227 fprintf( ioQQQ, " %4d",584 );
00228 fprintf( ioQQQ,PrintEfmt("%9.2e", Transitions[ipHE_LIKE][ipHELIUM][ipHe2p1P][ipHe1s1S].Emis->TauTot/flin ));
00229 fprintf( ioQQQ, " %4d",3889 );
00230 fprintf( ioQQQ,PrintEfmt("%9.2e", Transitions[ipHE_LIKE][ipHELIUM][ipHe3p3P][ipHe2s3S].Emis->TauTot/flin ));
00231 fprintf( ioQQQ, " %4d",5016 );
00232 fprintf( ioQQQ,PrintEfmt("%9.2e", Transitions[ipHE_LIKE][ipHELIUM][ipHe3p1P][ipHe2s1S].Emis->TauTot/flin ));
00233 fprintf( ioQQQ, " %4d",5876 );
00234 fprintf( ioQQQ,PrintEfmt("%9.2e", Transitions[ipHE_LIKE][ipHELIUM][ipHe3d3D][ipHe2p3P2].Emis->TauTot/flin ));
00235 fprintf( ioQQQ, "\n" );
00236
00237 fprintf( ioQQQ, " New He Is Lines:" );
00238 fprintf( ioQQQ, " %4d",584 );
00239 fprintf( ioQQQ,PrintEfmt("%9.2e", Transitions[ipHE_LIKE][ipHELIUM][ipHe2p1P][ipHe1s1S].Emis->TauIn/flin ));
00240 fprintf( ioQQQ, " %4d",3889 );
00241 fprintf( ioQQQ,PrintEfmt("%9.2e", Transitions[ipHE_LIKE][ipHELIUM][ipHe3p3P][ipHe2s3S].Emis->TauIn/flin ));
00242 fprintf( ioQQQ, " %4d",5016 );
00243 fprintf( ioQQQ,PrintEfmt("%9.2e", Transitions[ipHE_LIKE][ipHELIUM][ipHe3p1P][ipHe2s1S].Emis->TauIn/flin ));
00244 fprintf( ioQQQ, " %4d",5876 );
00245 fprintf( ioQQQ,PrintEfmt("%9.2e", Transitions[ipHE_LIKE][ipHELIUM][ipHe3d3D][ipHe2p3P2].Emis->TauIn/flin ));
00246 fprintf( ioQQQ, "\n" );
00247
00248
00249 }
00250 return;
00251 }