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
00015 void PrtAllTau(void)
00016 {
00017 long int i,
00018 n,
00019 nelem;
00020 realnum fcon,
00021 flin;
00022
00023 DEBUG_ENTRY( "PrtAllTau()" );
00024
00025
00026
00027
00028 if( geometry.lgSphere )
00029 {
00030 fcon = 2.;
00031 if( geometry.lgStatic )
00032 {
00033 flin = 2.;
00034 }
00035 else
00036 {
00037 flin = 1.;
00038 }
00039 }
00040 else
00041 {
00042 fcon = 1.;
00043 flin = 1.;
00044 }
00045
00046
00047 fprintf( ioQQQ, "\n Contin Optical Depths: COMP:");
00048
00049 fprintf( ioQQQ,PrintEfmt("%9.2e", opac.telec));
00050 fprintf( ioQQQ, " H-:");
00051 fprintf( ioQQQ,PrintEfmt("%9.2e",opac.thmin ));
00052
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 if( iso_sp[ipH_LIKE][ipHYDROGEN].n_HighestResolved_local >= 5 )
00062 {
00063 long ip5p = iso_sp[ipH_LIKE][ipHYDROGEN].QuantumNumbers2Index[5][1][2];
00064 ASSERT( iso_sp[ipH_LIKE][ipHYDROGEN].trans(ip5p,ipH4s).ipCont() > 0 );
00065 PrintE82( ioQQQ , opac.TauTotalGeo[0][iso_sp[ipH_LIKE][ipHYDROGEN].trans(ip5p,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_sp[ipH_LIKE][ipHYDROGEN].numLevels_local > ipH4p )
00076 {
00077 fprintf( ioQQQ,PrintEfmt("%9.2e", opac.TauTotalGeo[0][iso_sp[ipH_LIKE][ipHYDROGEN].trans(ipH4p,ipH3s).ipCont()-1]/fcon));
00078 }
00079 else
00080 {
00081 PrintE82( ioQQQ , 0.);
00082 }
00083
00084 fprintf( ioQQQ, " Ba:");
00085
00086 if( iso_sp[ipH_LIKE][ipHYDROGEN].numLevels_local > 3 )
00087 {
00088 fprintf( ioQQQ,PrintEfmt("%9.2e", opac.TauTotalGeo[0][iso_sp[ipH_LIKE][ipHYDROGEN].trans(ipH3p,ipH2s).ipCont()-1]/fcon));
00089 }
00090 else
00091 {
00092 PrintE82( ioQQQ , 0.);
00093 }
00094
00095 fprintf( ioQQQ, " Hb:");
00096
00097 if( iso_sp[ipH_LIKE][ipHYDROGEN].numLevels_local > 4 )
00098 {
00099 fprintf( ioQQQ,PrintEfmt("%9.2e", opac.TauTotalGeo[0][iso_sp[ipH_LIKE][ipHYDROGEN].trans(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][iso_sp[ipH_LIKE][ipHYDROGEN].trans(ipH2p,ipH1s).ipCont()-1]/fcon));
00108
00109 fprintf( ioQQQ, " 1r:");
00110 PrintE93( ioQQQ , opac.TauTotalGeo[0][iso_sp[ipH_LIKE][ipHYDROGEN].fb[ipH1s].ipIsoLevNIonCon-1]/fcon);
00111
00112 fprintf( ioQQQ, " 1.8:");
00113 PrintE82( ioQQQ , opac.TauTotalGeo[0][iso_sp[ipHE_LIKE][ipHELIUM].fb[0].ipIsoLevNIonCon-1]/fcon);
00114
00115 fprintf( ioQQQ, " 4.:");
00116 PrintE93( ioQQQ , opac.TauTotalGeo[0][iso_sp[ipH_LIKE][1].fb[ipH1s].ipIsoLevNIonCon-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 for( n=ipH1s; n < iso_sp[ipH_LIKE][nelem].numLevels_max - iso_sp[ipH_LIKE][nelem].nCollapsed_max; n++ )
00138 {
00139 if( n==ipH2s )
00140 continue;
00141 if( n%NUMB_PER_LINE ==1)
00142 fprintf(ioQQQ,"\n");
00143
00144
00145 fprintf( ioQQQ , "%6ld",MAX2(1,n));
00146 fprintf( ioQQQ,PrintEfmt("%9.2e", opac.TauAbsGeo[i][iso_sp[ipH_LIKE][nelem].fb[n].ipIsoLevNIonCon-1]/fcon));
00147 }
00148 fprintf( ioQQQ, "\n" );
00149 }
00150
00151
00152 fprintf( ioQQQ, "\n Old, new %s%2li mean line optical depths:\n",
00153 elementnames.chElementSym[nelem] ,
00154 nelem+1);
00155
00156 fprintf( ioQQQ, "%3i-%2i",2, 1 );
00157 fprintf( ioQQQ,PrintEfmt("%9.2e", iso_sp[ipH_LIKE][nelem].trans(ipH2p,ipH1s).Emis().TauTot()*SQRTPI/flin ));
00158
00159
00160 for( n=3; n <= iso_sp[ipH_LIKE][nelem].n_HighestResolved_local; n++ )
00161 {
00162 if( n%NUMB_PER_LINE ==1)
00163 fprintf(ioQQQ,"\n");
00164 fprintf( ioQQQ, "%3ld-%2ld",n, n-1 );
00165 fprintf( ioQQQ,PrintEfmt("%9.2e",
00166
00167
00168 iso_sp[ipH_LIKE][nelem].trans( iso_sp[ipH_LIKE][nelem].QuantumNumbers2Index[n][1][2],
00169 iso_sp[ipH_LIKE][nelem].QuantumNumbers2Index[n-1][0][2] ).Emis().TauTot()*SQRTPI/flin ));
00170 }
00171 if( prt.lgPrnIsoCollapsed )
00172 {
00173
00174
00175 for( n=iso_sp[ipH_LIKE][nelem].numLevels_local - iso_sp[ipH_LIKE][nelem].nCollapsed_local; n < iso_sp[ipH_LIKE][nelem].numLevels_local; n++ )
00176 {
00177 if( iso_sp[ipH_LIKE][nelem].st[n].n() % NUMB_PER_LINE ==1)
00178 fprintf(ioQQQ,"\n");
00179 fprintf( ioQQQ, "%3ld-%2ld", iso_sp[ipH_LIKE][nelem].st[n].n(), iso_sp[ipH_LIKE][nelem].st[n-1].n() );
00180 fprintf( ioQQQ,PrintEfmt("%9.2e", iso_sp[ipH_LIKE][nelem].trans(n,n-1).Emis().TauTot()*SQRTPI/flin ));
00181 }
00182 }
00183
00184 fprintf( ioQQQ, "\n" );
00185
00186 fprintf( ioQQQ, "%3i-%2i",2, 1 );
00187 fprintf( ioQQQ,PrintEfmt("%9.2e", iso_sp[ipH_LIKE][nelem].trans(ipH2p,ipH1s).Emis().TauIn()*SQRTPI/flin ));
00188
00189 for( n=3; n <= iso_sp[ipH_LIKE][nelem].n_HighestResolved_local; n++ )
00190 {
00191 if( n%NUMB_PER_LINE ==1)
00192 fprintf(ioQQQ,"\n");
00193 fprintf( ioQQQ, "%3ld-%2ld",n, n-1 );
00194 fprintf( ioQQQ,PrintEfmt("%9.2e",
00195
00196 iso_sp[ipH_LIKE][nelem].trans( iso_sp[ipH_LIKE][nelem].QuantumNumbers2Index[n][1][2],
00197 iso_sp[ipH_LIKE][nelem].QuantumNumbers2Index[n-1][0][2] ).Emis().TauIn()*SQRTPI/flin ));
00198 }
00199 if( prt.lgPrnIsoCollapsed )
00200 {
00201 for( n=iso_sp[ipH_LIKE][nelem].numLevels_local - iso_sp[ipH_LIKE][nelem].nCollapsed_local; n < iso_sp[ipH_LIKE][nelem].numLevels_local; n++ )
00202 {
00203 if( iso_sp[ipH_LIKE][nelem].st[n].n() % NUMB_PER_LINE ==1)
00204 fprintf(ioQQQ,"\n");
00205 fprintf( ioQQQ, "%3ld-%2ld", iso_sp[ipH_LIKE][nelem].st[n].n(), iso_sp[ipH_LIKE][nelem].st[n-1].n() );
00206 fprintf( ioQQQ,PrintEfmt("%9.2e", iso_sp[ipH_LIKE][nelem].trans(n,n-1).Emis().TauIn()*SQRTPI/flin ));
00207 }
00208 }
00209 fprintf( ioQQQ, "\n" );
00210 }
00211 }
00212
00213
00214
00215
00216 if( dense.lgElmtOn[ipHELIUM] )
00217 {
00218 fprintf( ioQQQ, "\n Old He Is optical depths:" );
00219 for( i=0; i < 5; i++ )
00220 {
00221 fprintf( ioQQQ, "%5ld", i+1 );
00222 fprintf( ioQQQ,PrintEfmt("%9.2e", opac.TauAbsGeo[1][iso_sp[ipHE_LIKE][ipHELIUM].fb[i].ipIsoLevNIonCon-1]/fcon) );
00223 }
00224 fprintf( ioQQQ, "\n" );
00225
00226 fprintf( ioQQQ, " New He Is optical depths:" );
00227 for( i=0; i < 5; i++ )
00228 {
00229 fprintf( ioQQQ, "%5ld", i+1 );
00230 fprintf( ioQQQ,PrintEfmt("%9.2e", opac.TauAbsGeo[0][iso_sp[ipHE_LIKE][ipHELIUM].fb[i].ipIsoLevNIonCon-1]/fcon ));
00231 }
00232 fprintf( ioQQQ, "\n" );
00233
00234
00235
00236 fprintf( ioQQQ, " Old He Is Lines:" );
00237 fprintf( ioQQQ, " %4d",584 );
00238 fprintf( ioQQQ,PrintEfmt("%9.2e", iso_sp[ipHE_LIKE][ipHELIUM].trans(ipHe2p1P,ipHe1s1S).Emis().TauTot()*SQRTPI/flin ));
00239 fprintf( ioQQQ, " %4d",3889 );
00240 fprintf( ioQQQ,PrintEfmt("%9.2e", iso_sp[ipHE_LIKE][ipHELIUM].trans(ipHe3p3P,ipHe2s3S).Emis().TauTot()*SQRTPI/flin ));
00241 fprintf( ioQQQ, " %4d",5016 );
00242 fprintf( ioQQQ,PrintEfmt("%9.2e", iso_sp[ipHE_LIKE][ipHELIUM].trans(ipHe3p1P,ipHe2s1S).Emis().TauTot()*SQRTPI/flin ));
00243 fprintf( ioQQQ, " %4d",5876 );
00244 fprintf( ioQQQ,PrintEfmt("%9.2e", iso_sp[ipHE_LIKE][ipHELIUM].trans(ipHe3d3D,ipHe2p3P2).Emis().TauTot()*SQRTPI/flin ));
00245 fprintf( ioQQQ, "\n" );
00246
00247 fprintf( ioQQQ, " New He Is Lines:" );
00248 fprintf( ioQQQ, " %4d",584 );
00249 fprintf( ioQQQ,PrintEfmt("%9.2e", iso_sp[ipHE_LIKE][ipHELIUM].trans(ipHe2p1P,ipHe1s1S).Emis().TauIn()*SQRTPI/flin ));
00250 fprintf( ioQQQ, " %4d",3889 );
00251 fprintf( ioQQQ,PrintEfmt("%9.2e", iso_sp[ipHE_LIKE][ipHELIUM].trans(ipHe3p3P,ipHe2s3S).Emis().TauIn()*SQRTPI/flin ));
00252 fprintf( ioQQQ, " %4d",5016 );
00253 fprintf( ioQQQ,PrintEfmt("%9.2e", iso_sp[ipHE_LIKE][ipHELIUM].trans(ipHe3p1P,ipHe2s1S).Emis().TauIn()*SQRTPI/flin ));
00254 fprintf( ioQQQ, " %4d",5876 );
00255 fprintf( ioQQQ,PrintEfmt("%9.2e", iso_sp[ipHE_LIKE][ipHELIUM].trans(ipHe3d3D,ipHe2p3P2).Emis().TauIn()*SQRTPI/flin ));
00256 fprintf( ioQQQ, "\n" );
00257
00258
00259 }
00260 return;
00261 }