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 float 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] > 5 )
00063 {
00064 PrintE82( ioQQQ , opac.TauTotalGeo[0][EmisLines[ipH_LIKE][ipHYDROGEN][5][4].ipCont-1]/fcon);
00065 }
00066 else
00067 {
00068 PrintE82( ioQQQ , 0.);
00069 }
00070 fprintf( ioQQQ, "\n" );
00071
00072 fprintf( ioQQQ, " Pa:");
00073
00074 if( iso.numLevels_local[ipH_LIKE][ipHYDROGEN] > 4 )
00075 {
00076 fprintf( ioQQQ,PrintEfmt("%9.2e", opac.TauTotalGeo[0][EmisLines[ipH_LIKE][ipHYDROGEN][4][3].ipCont-1]/fcon));
00077 }
00078 else
00079 {
00080 PrintE82( ioQQQ , 0.);
00081 }
00082
00083 fprintf( ioQQQ, " Ba:");
00084
00085 if( iso.numLevels_local[ipH_LIKE][ipHYDROGEN] > 3 )
00086 {
00087 fprintf( ioQQQ,PrintEfmt("%9.2e", opac.TauTotalGeo[0][EmisLines[ipH_LIKE][ipHYDROGEN][3][2].ipCont-1]/fcon));
00088 }
00089 else
00090 {
00091 PrintE82( ioQQQ , 0.);
00092 }
00093
00094 fprintf( ioQQQ, " Hb:");
00095
00096 if( iso.numLevels_local[ipH_LIKE][ipHYDROGEN] > 4 )
00097 {
00098 fprintf( ioQQQ,PrintEfmt("%9.2e", opac.TauTotalGeo[0][EmisLines[ipH_LIKE][ipHYDROGEN][4][2].ipCont-1]/fcon));
00099 }
00100 else
00101 {
00102 PrintE82( ioQQQ , 0.);
00103 }
00104
00105 fprintf( ioQQQ, " La:");
00106 fprintf( ioQQQ,PrintEfmt("%9.2e", opac.TauTotalGeo[0][EmisLines[ipH_LIKE][ipHYDROGEN][ipH2p][ipH1s].ipCont-1]/fcon));
00107
00108 fprintf( ioQQQ, " 1r:");
00109 PrintE93( ioQQQ , opac.TauTotalGeo[0][iso.ipIsoLevNIonCon[ipH_LIKE][ipHYDROGEN][ipH1s]-1]/fcon);
00110
00111 fprintf( ioQQQ, " 1.8:");
00112 PrintE82( ioQQQ , opac.TauTotalGeo[0][iso.ipIsoLevNIonCon[ipHE_LIKE][ipHELIUM][0]-1]/fcon);
00113
00114 fprintf( ioQQQ, " 4.:");
00115 PrintE93( ioQQQ , opac.TauTotalGeo[0][iso.ipIsoLevNIonCon[ipH_LIKE][1][ipH1s]-1]/fcon);
00116 fprintf( ioQQQ, "\n");
00117
00118 if( dense.lgElmtOn[ipHELIUM] )
00119 {
00120
00121
00122
00123 fprintf( ioQQQ, " Line Optical Depths: 10830:");
00124 fprintf( ioQQQ,PrintEfmt("%9.2e", (EmisLines[ipHE_LIKE][ipHELIUM][ipHe2p3P0][ipHe2s3S].TauIn+
00125 EmisLines[ipHE_LIKE][ipHELIUM][ipHe2p3P1][ipHe2s3S].TauIn+
00126 EmisLines[ipHE_LIKE][ipHELIUM][ipHe2p3P2][ipHe2s3S].TauIn)/flin));
00127 fprintf( ioQQQ, " 3889:");
00128 fprintf( ioQQQ,PrintEfmt("%9.2e", EmisLines[ipHE_LIKE][ipHELIUM][ipHe3p3P][ipHe2s3S].TauIn/flin));
00129 fprintf( ioQQQ, " 5876:");
00130 fprintf( ioQQQ,PrintEfmt("%9.2e", (EmisLines[ipHE_LIKE][ipHELIUM][ipHe3d3D][ipHe2p3P0].TauIn+
00131 EmisLines[ipHE_LIKE][ipHELIUM][ipHe3d3D][ipHe2p3P1].TauIn+
00132 EmisLines[ipHE_LIKE][ipHELIUM][ipHe3d3D][ipHe2p3P2].TauIn)/flin));
00133 fprintf( ioQQQ, " 7065:");
00134 fprintf( ioQQQ,PrintEfmt("%9.2e", (EmisLines[ipHE_LIKE][ipHELIUM][ipHe3s3S][ipHe2p3P0].TauIn+
00135 EmisLines[ipHE_LIKE][ipHELIUM][ipHe3s3S][ipHe2p3P1].TauIn+
00136 EmisLines[ipHE_LIKE][ipHELIUM][ipHe3s3S][ipHe2p3P2].TauIn)/flin));
00137 fprintf( ioQQQ, " 2.06m:");
00138 fprintf( ioQQQ,PrintEfmt("%9.2e", EmisLines[ipHE_LIKE][ipHELIUM][ipHe2p1P][ipHe2s1S].TauIn/flin));
00139 fprintf( ioQQQ, " 21c:");
00140 fprintf( ioQQQ,PrintEfmt("%9.2e", HFLines[0].TauIn/flin));
00141
00142 fprintf( ioQQQ, "\n" );
00143 }
00144
00145
00146 prtmet();
00147
00148
00149 for( nelem=ipHYDROGEN; nelem<=ipHELIUM; ++nelem )
00150 {
00151
00152 if( dense.lgElmtOn[nelem] )
00153 {
00154 # define NUMB_PER_LINE 8
00155 fprintf( ioQQQ, "\n Old, new %s%2li continuum optical depths:\n",
00156 elementnames.chElementSym[nelem] ,
00157 nelem+1);
00158
00159
00160 for( i=1; i>=0; --i )
00161 {
00162
00163
00164 for( n=ipH1s; n < iso.numLevels_local[ipH_LIKE][nelem]; n++ )
00165 {
00166 if( n==ipH2s )
00167 continue;
00168 if( n%NUMB_PER_LINE ==1)
00169 fprintf(ioQQQ,"\n");
00170
00171
00172 fprintf( ioQQQ , "%6ld",MAX2(1,n));
00173 fprintf( ioQQQ,PrintEfmt("%9.2e", opac.TauAbsGeo[i][iso.ipIsoLevNIonCon[ipH_LIKE][nelem][n]-1]/fcon));
00174 }
00175 fprintf( ioQQQ, "\n" );
00176 }
00177
00178
00179 fprintf( ioQQQ, "\n Old, new %s%2li line optical depths:\n",
00180 elementnames.chElementSym[nelem] ,
00181 nelem+1);
00182
00183 fprintf( ioQQQ, "%3i-%2i",2, 1 );
00184 fprintf( ioQQQ,PrintEfmt("%9.2e", EmisLines[ipH_LIKE][nelem][ipH2p][ipH1s].TauTot/flin ));
00185
00186
00187 for( n=3; n < iso.numLevels_local[ipH_LIKE][nelem]; n++ )
00188 {
00189 if( n%NUMB_PER_LINE ==1)
00190 fprintf(ioQQQ,"\n");
00191 fprintf( ioQQQ, "%3ld-%2ld",n, n-1 );
00192 fprintf( ioQQQ,PrintEfmt("%9.2e", EmisLines[ipH_LIKE][nelem][n][n-1].TauTot/flin ));
00193 }
00194 fprintf( ioQQQ, "\n" );
00195
00196 fprintf( ioQQQ, "%3i-%2i",2, 1 );
00197 fprintf( ioQQQ,PrintEfmt("%9.2e", EmisLines[ipH_LIKE][nelem][ipH2p][ipH1s].TauIn/flin ));
00198
00199 for( n=3; n < iso.numLevels_local[ipH_LIKE][nelem]; n++ )
00200 {
00201 if( n%NUMB_PER_LINE ==1)
00202 fprintf(ioQQQ,"\n");
00203 fprintf( ioQQQ, "%3ld-%2ld",n, n-1 );
00204 fprintf( ioQQQ,PrintEfmt("%9.2e", EmisLines[ipH_LIKE][nelem][n][n-1].TauIn/flin ));
00205 }
00206 fprintf( ioQQQ, "\n" );
00207 }
00208 }
00209
00210
00211
00212
00213 if( dense.lgElmtOn[ipHELIUM] )
00214 {
00215 fprintf( ioQQQ, "\n Old He Is optical depths:" );
00216 for( i=0; i < 5; i++ )
00217 {
00218 fprintf( ioQQQ, "%5ld", i+1 );
00219 fprintf( ioQQQ,PrintEfmt("%9.2e", opac.TauAbsGeo[1][iso.ipIsoLevNIonCon[ipHE_LIKE][ipHELIUM][i]-1]/fcon) );
00220 }
00221 fprintf( ioQQQ, "\n" );
00222
00223 fprintf( ioQQQ, " New He Is optical depths:" );
00224 for( i=0; i < 5; i++ )
00225 {
00226 fprintf( ioQQQ, "%5ld", i+1 );
00227 fprintf( ioQQQ,PrintEfmt("%9.2e", opac.TauAbsGeo[0][iso.ipIsoLevNIonCon[ipHE_LIKE][ipHELIUM][i]-1]/fcon ));
00228 }
00229 fprintf( ioQQQ, "\n" );
00230
00231
00232
00233
00234 fprintf( ioQQQ, " Old He Is Lines:" );
00235 fprintf( ioQQQ, " %4d",584 );
00236 fprintf( ioQQQ,PrintEfmt("%9.2e", EmisLines[ipHE_LIKE][ipHELIUM][ipHe2p1P][ipHe1s1S].TauTot/flin ));
00237 fprintf( ioQQQ, " %4d",3889 );
00238 fprintf( ioQQQ,PrintEfmt("%9.2e", EmisLines[ipHE_LIKE][ipHELIUM][ipHe3p3P][ipHe2s3S].TauTot/flin ));
00239 fprintf( ioQQQ, " %4d",5016 );
00240 fprintf( ioQQQ,PrintEfmt("%9.2e", EmisLines[ipHE_LIKE][ipHELIUM][ipHe3p1P][ipHe2s1S].TauTot/flin ));
00241 fprintf( ioQQQ, " %4d",5876 );
00242 fprintf( ioQQQ,PrintEfmt("%9.2e", EmisLines[ipHE_LIKE][ipHELIUM][ipHe3d3D][ipHe2p3P2].TauTot/flin ));
00243 fprintf( ioQQQ, "\n" );
00244
00245 fprintf( ioQQQ, " New He Is Lines:" );
00246 fprintf( ioQQQ, " %4d",584 );
00247 fprintf( ioQQQ,PrintEfmt("%9.2e", EmisLines[ipHE_LIKE][ipHELIUM][ipHe2p1P][ipHe1s1S].TauIn/flin ));
00248 fprintf( ioQQQ, " %4d",3889 );
00249 fprintf( ioQQQ,PrintEfmt("%9.2e", EmisLines[ipHE_LIKE][ipHELIUM][ipHe3p3P][ipHe2s3S].TauIn/flin ));
00250 fprintf( ioQQQ, " %4d",5016 );
00251 fprintf( ioQQQ,PrintEfmt("%9.2e", EmisLines[ipHE_LIKE][ipHELIUM][ipHe3p1P][ipHe2s1S].TauIn/flin ));
00252 fprintf( ioQQQ, " %4d",5876 );
00253 fprintf( ioQQQ,PrintEfmt("%9.2e", EmisLines[ipHE_LIKE][ipHELIUM][ipHe3d3D][ipHe2p3P2].TauIn/flin ));
00254 fprintf( ioQQQ, "\n" );
00255
00256
00257 }
00258
00259 DEBUG_EXIT( "PrtAllTau()" );
00260 return;
00261 }
00262