00001
00002
00003
00004
00005 #include "cddefines.h"
00006 #include "physconst.h"
00007 #include "iso.h"
00008 #include "grainvar.h"
00009 #include "pressure.h"
00010 #include "wind.h"
00011 #include "conv.h"
00012 #include "trace.h"
00013 #include "magnetic.h"
00014 #include "dense.h"
00015 #include "called.h"
00016 #include "dynamics.h"
00017 #include "h2.h"
00018 #include "mole.h"
00019 #include "secondaries.h"
00020 #include "opacity.h"
00021 #include "colden.h"
00022 #include "geometry.h"
00023 #include "hmi.h"
00024 #include "rfield.h"
00025 #include "thermal.h"
00026 #include "radius.h"
00027 #include "phycon.h"
00028 #include "abund.h"
00029 #include "hydrogenic.h"
00030 #include "ionbal.h"
00031 #include "elementnames.h"
00032 #include "atomfeii.h"
00033 #include "prt.h"
00034 #include "taulines.h"
00035
00036 void PrtZone(void)
00037 {
00038 char chField7[8];
00039 char chLet,
00040 chQHMark;
00041 long int i,
00042 ishift,
00043 nelem ,
00044 mol;
00045 double hatmic;
00046
00047 DEBUG_ENTRY( "PrtZone()" );
00048
00049 if( thermal.lgUnstable )
00050 {
00051 chLet = 'u';
00052 }
00053 else
00054 {
00055 chLet = ' ';
00056 }
00057
00058
00059
00060
00061
00062
00063
00064 if( called.lgTalk || trace.nTrConvg )
00065 {
00066
00067 if( nzone <= 999 )
00068 {
00069 sprintf( chField7, "####%3ld", nzone );
00070 }
00071 else
00072 {
00073 sprintf( chField7, "###%4ld", nzone );
00074 }
00075
00076 fprintf(ioQQQ, " %7.7s %cTe:",chField7, chLet);
00077 PrintE93(ioQQQ,phycon.te);
00078 fprintf(ioQQQ," Hden:");
00079 PrintE93(ioQQQ,dense.gas_phase[ipHYDROGEN]);
00080 fprintf(ioQQQ," Ne:");
00081 PrintE93(ioQQQ,dense.eden);
00082 fprintf(ioQQQ," R:");
00083 PrintE93(ioQQQ,radius.Radius_mid_zone );
00084 fprintf(ioQQQ," R-R0:");
00085 PrintE93(ioQQQ,radius.depth_mid_zone);
00086 fprintf(ioQQQ," dR:");
00087 PrintE93(ioQQQ,radius.drad);
00088 fprintf(ioQQQ," NTR:%3ld Htot:",conv.nPres2Ioniz);
00089 PrintE93(ioQQQ,thermal.htot);
00090 fprintf(ioQQQ," T912:");
00091 fprintf(ioQQQ,PrintEfmt("%9.2e",opac.TauAbsGeo[0][iso.ipIsoLevNIonCon[ipH_LIKE][ipHYDROGEN][ipH1s]-1] ));
00092 fprintf(ioQQQ,"###\n");
00093
00094 if( trace.nTrConvg )
00095 {
00096 fprintf( ioQQQ, " H:%.2e %.2e 2H2/H: %.2e He: %.2e %.2e %.2e\n",
00097 dense.xIonDense[ipHYDROGEN][0]/dense.gas_phase[ipHYDROGEN],
00098 dense.xIonDense[ipHYDROGEN][1]/dense.gas_phase[ipHYDROGEN],
00099 2.*hmi.H2_total/dense.gas_phase[ipHYDROGEN],
00100 dense.xIonDense[ipHELIUM][0]/SDIV(dense.gas_phase[ipHELIUM]),
00101 dense.xIonDense[ipHELIUM][1]/SDIV(dense.gas_phase[ipHELIUM]),
00102 dense.xIonDense[ipHELIUM][2]/SDIV(dense.gas_phase[ipHELIUM])
00103 );
00104 }
00105 }
00106
00107
00108 if( !called.lgTalk || trace.nTrConvg )
00109 {
00110 return;
00111 }
00112
00113
00114
00115 if( !dense.lgDenFlucOn || abund.lgAbTaON )
00116 {
00117 fprintf( ioQQQ, " Abun:" );
00118 for( i=0; i < LIMELM; i++ )
00119 {
00120 fprintf( ioQQQ,PrintEfmt("%8.1e", dense.gas_phase[i] ));
00121 }
00122 fprintf( ioQQQ, "\n" );
00123 }
00124
00125
00126
00127 if( !wind.lgStatic() )
00128 {
00129 double fac;
00130
00131 if( wind.AccelTotalOutward == 0. )
00132 fac = 1.;
00133 else
00134 fac = wind.AccelTotalOutward;
00135 fprintf( ioQQQ,
00136 " Dynamics wind V:%.3e km/s a(grav):%.2e a(tot):%.2e Fr(cont):%6.3f "
00137 "Fr(line):%6.3f \n",
00138 wind.windv/1e5 ,
00139 -wind.AccelGravity,
00140 wind.AccelTotalOutward,
00141 wind.AccelCont/ fac,
00142 wind.AccelLine/fac );
00143
00144
00145 if( dynamics.lgAdvection )
00146 DynaPrtZone();
00147 }
00148
00149
00150 if( pressure.pbeta > .05 )
00151 PrtLinePres(ioQQQ);
00152
00153
00154
00155 hatmic = 0.;
00156 for(mol = 0; mol < N_H_MOLEC; mol++) {
00157 hatmic += hmi.Hmolec[mol]*hmi.nProton[mol];
00158 }
00159 ASSERT(hatmic > 0.);
00160 hatmic = (dense.xIonDense[ipHYDROGEN][0] + dense.xIonDense[ipHYDROGEN][1])/hatmic;
00161
00162 fprintf( ioQQQ, " Hydrogen ");
00163 fprintf(ioQQQ,PrintEfmt("%9.2e",dense.xIonDense[ipHYDROGEN][0]/dense.gas_phase[ipHYDROGEN]));
00164 fprintf(ioQQQ,PrintEfmt("%9.2e",dense.xIonDense[ipHYDROGEN][1]/dense.gas_phase[ipHYDROGEN]));
00165 fprintf( ioQQQ, " H+o/Hden");
00166 fprintf(ioQQQ,PrintEfmt("%9.2e",hatmic ));
00167 fprintf(ioQQQ,PrintEfmt("%9.2e",hmi.Hmolec[ipMHm]/dense.gas_phase[ipHYDROGEN] ));
00168 fprintf( ioQQQ, " H- H2");
00169
00170 fprintf(ioQQQ,PrintEfmt("%9.2e",hmi.H2_total/dense.gas_phase[ipHYDROGEN]));
00171 fprintf(ioQQQ,PrintEfmt("%9.2e",hmi.Hmolec[ipMH2p]/dense.gas_phase[ipHYDROGEN]));
00172 fprintf( ioQQQ, " H2+ HeH+");
00173 fprintf(ioQQQ,PrintEfmt("%9.2e",hmi.Hmolec[ipMHeHp]/dense.gas_phase[ipHYDROGEN]));
00174 fprintf( ioQQQ, " Ho+ ColD");
00175 fprintf(ioQQQ,PrintEfmt("%9.2e",colden.colden[ipCOL_H0]));
00176 fprintf(ioQQQ,PrintEfmt("%9.2e",colden.colden[ipCOL_Hp]));
00177 fprintf( ioQQQ, "\n");
00178
00179
00180 if( iso.lgPrtDepartCoef[ipH_LIKE][ipHYDROGEN] )
00181 {
00182 fprintf( ioQQQ, " Hydrogen " );
00183 fprintf(ioQQQ,PrintEfmt("%9.2e", iso.DepartCoef[ipH_LIKE][ipHYDROGEN][ipH1s]));
00184 fprintf(ioQQQ,PrintEfmt("%9.2e", 1.));
00185 fprintf( ioQQQ, " H+o/Hden");
00186 fprintf(ioQQQ,PrintEfmt("%9.2e", (dense.xIonDense[ipHYDROGEN][0] + dense.xIonDense[ipHYDROGEN][1])/dense.gas_phase[ipHYDROGEN]));
00187 fprintf(ioQQQ,PrintEfmt("%9.2e", hmi.hmidep));
00188 fprintf( ioQQQ, " H- H2");
00189 fprintf(ioQQQ,PrintEfmt("%9.2e", hmi.h2dep));
00190 fprintf( ioQQQ, " H2+");
00191 fprintf(ioQQQ,PrintEfmt("%9.2e", hmi.h2pdep));
00192 fprintf( ioQQQ, " H3+");
00193 fprintf(ioQQQ,PrintEfmt("%9.2e",hmi.h3pdep));
00194 fprintf( ioQQQ, "\n" );
00195 }
00196
00197 if( prt.lgPrintHeating )
00198 {
00199 fprintf( ioQQQ, " ");
00200 fprintf(ioQQQ,PrintEfmt("%9.2e", thermal.heating[0][0]/thermal.htot));
00201 fprintf( ioQQQ," ");
00202 fprintf(ioQQQ,PrintEfmt("%9.2e", thermal.heating[0][15]/thermal.htot));
00203 fprintf( ioQQQ," ");
00204 fprintf(ioQQQ,PrintEfmt("%9.2e", thermal.heating[0][16]/thermal.htot));
00205 fprintf( ioQQQ,"\n");
00206 }
00207
00208
00209
00210 double TconTot = pow((rfield.EnergyIncidCont+rfield.EnergyDiffCont)/SPEEDLIGHT/7.56464e-15,0.25);
00211 double Tincid = pow(rfield.EnergyIncidCont/SPEEDLIGHT/7.56464e-15,0.25);
00212 double Tdiff = pow(rfield.EnergyDiffCont/SPEEDLIGHT/7.56464e-15,0.25);
00213
00214
00215 double Pcon_nT = (Tincid + Tdiff) / SPEEDLIGHT;
00216 Pcon_nT /= BOLTZMANN;
00217
00218 if( prt.lgPrintHeating )
00219 {
00220 fprintf( ioQQQ, " ");
00221 fprintf(ioQQQ,PrintEfmt("%9.2e", thermal.heating[0][1]/thermal.htot ));
00222 fprintf( ioQQQ, " ");
00223 fprintf(ioQQQ,PrintEfmt("%9.2e", 0. ));
00224 fprintf( ioQQQ, " BoundCom");
00225 fprintf(ioQQQ,PrintEfmt("%9.2e", ionbal.CompRecoilHeatLocal/ thermal.htot));
00226 fprintf( ioQQQ, " Extra:");
00227 fprintf(ioQQQ,PrintEfmt("%9.2e",thermal.heating[0][20]/thermal.htot));
00228 fprintf( ioQQQ, " Pairs:");
00229 fprintf(ioQQQ,PrintEfmt("%9.2e", thermal.heating[0][21]/ thermal.htot ));
00230 fprintf( ioQQQ," H-lines\n");
00231 }
00232
00233
00234 if( dense.lgElmtOn[ipHELIUM] )
00235 {
00236 fprintf( ioQQQ, " Helium " );
00237 for( i=0; i < 3; i++ )
00238 {
00239 fprintf(ioQQQ,PrintEfmt("%9.2e", dense.xIonDense[ipHELIUM][i]/dense.gas_phase[ipHELIUM]) );
00240 }
00241
00242 fprintf( ioQQQ, " HeI 2s3S");
00243 fprintf(ioQQQ,PrintEfmt("%9.2e",
00244 StatesElemNEW[ipHELIUM][ipHELIUM-ipHE_LIKE][ipHe2s3S].Pop/dense.gas_phase[ipHELIUM] ));
00245 fprintf( ioQQQ, " Comp H,C");
00246 fprintf(ioQQQ,PrintEfmt("%9.2e", rfield.cmheat ));
00247 fprintf(ioQQQ,PrintEfmt("%9.2e", rfield.cmcool*phycon.te));
00248 fprintf( ioQQQ , " Fill Fac");
00249 fprintf(ioQQQ,PrintEfmt("%9.2e", geometry.FillFac));
00250 fprintf( ioQQQ , " Gam1/tot");
00251 fprintf(ioQQQ,PrintEfmt("%9.2e", hydro.H_ion_frac_photo));
00252 fprintf( ioQQQ, "\n");
00253
00254
00255 if( iso.lgPrtDepartCoef[ipH_LIKE][ipHELIUM] )
00256 {
00257 fprintf( ioQQQ, " Helium " );
00258 fprintf(ioQQQ,PrintEfmt("%9.2e", iso.DepartCoef[ipHE_LIKE][ipHELIUM][0]));
00259 fprintf(ioQQQ,PrintEfmt("%9.2e", iso.DepartCoef[ipH_LIKE][ipHELIUM][ipH1s]));
00260 fprintf(ioQQQ,PrintEfmt("%9.2e", 1.));
00261
00262 fprintf( ioQQQ, " Comp H,C");
00263 fprintf(ioQQQ,PrintEfmt("%9.2e", rfield.cmheat ));
00264 fprintf(ioQQQ,PrintEfmt("%9.2e", rfield.cmcool*phycon.te ));
00265 fprintf( ioQQQ , " Fill Fac");
00266 fprintf(ioQQQ,PrintEfmt("%9.2e", geometry.FillFac ));
00267 fprintf( ioQQQ , " Gam1/tot");
00268 fprintf(ioQQQ,PrintEfmt("%9.2e", hydro.H_ion_frac_photo));
00269 fprintf( ioQQQ, "\n");
00270 }
00271
00272
00273
00274
00275 if( prt.lgPrintHeating )
00276 {
00277
00278
00279
00280
00281
00282 fprintf( ioQQQ, " ");
00283 fprintf(ioQQQ,PrintEfmt("%9.2e",thermal.heating[1][0]/thermal.htot));
00284 fprintf(ioQQQ,PrintEfmt("%9.2e",thermal.heating[1][1]/thermal.htot));
00285 fprintf( ioQQQ, " Lines:");
00286 fprintf(ioQQQ,PrintEfmt("%9.2e",thermal.heating[0][22]/thermal.htot));
00287 fprintf(ioQQQ,PrintEfmt("%9.2e",thermal.heating[1][2]/thermal.htot));
00288 fprintf( ioQQQ, " Compton:");
00289 fprintf(ioQQQ,PrintEfmt("%9.2e",thermal.heating[0][19]/thermal.htot));
00290 fprintf( ioQQQ, " FFHeatig");
00291 fprintf(ioQQQ,PrintEfmt("%9.2e",thermal.heating[0][11]/thermal.htot));
00292 fprintf( ioQQQ, "\n");
00293 }
00294
00295 if( dense.lgElmtOn[ipHELIUM] )
00296 {
00297
00298 double fac = 1./dense.gas_phase[ipHELIUM];
00299 fprintf( ioQQQ, " He singlet n " );
00300 fprintf(ioQQQ,PrintEfmt("%9.2e", StatesElemNEW[ipHELIUM][ipHELIUM-ipHE_LIKE][ipHe1s1S].Pop*fac ));
00301
00302 fprintf(ioQQQ,PrintEfmt("%9.2e", StatesElemNEW[ipHELIUM][ipHELIUM-ipHE_LIKE][ipHe2s1S].Pop*fac ));
00303 fprintf(ioQQQ,PrintEfmt("%9.2e", StatesElemNEW[ipHELIUM][ipHELIUM-ipHE_LIKE][ipHe2p1P].Pop*fac ));
00304
00305 fprintf(ioQQQ,PrintEfmt("%9.2e", StatesElemNEW[ipHELIUM][ipHELIUM-ipHE_LIKE][ipHe3s1S].Pop*fac ));
00306 fprintf(ioQQQ,PrintEfmt("%9.2e", StatesElemNEW[ipHELIUM][ipHELIUM-ipHE_LIKE][ipHe3p1P].Pop*fac ));
00307 fprintf(ioQQQ,PrintEfmt("%9.2e", StatesElemNEW[ipHELIUM][ipHELIUM-ipHE_LIKE][ipHe3d1D].Pop*fac ));
00308
00309 fprintf( ioQQQ, " He tripl" );
00310
00311 fprintf(ioQQQ,PrintEfmt("%9.2e", StatesElemNEW[ipHELIUM][ipHELIUM-ipHE_LIKE][ipHe2s3S].Pop*fac ));
00312 fprintf(ioQQQ,PrintEfmt("%9.2e",
00313 StatesElemNEW[ipHELIUM][ipHELIUM-ipHE_LIKE][ipHe2p3P0].Pop*fac+
00314 StatesElemNEW[ipHELIUM][ipHELIUM-ipHE_LIKE][ipHe2p3P1].Pop*fac+
00315 StatesElemNEW[ipHELIUM][ipHELIUM-ipHE_LIKE][ipHe2p3P2].Pop*fac ));
00316
00317 fprintf(ioQQQ,PrintEfmt("%9.2e", StatesElemNEW[ipHELIUM][ipHELIUM-ipHE_LIKE][ipHe3s3S].Pop*fac ));
00318 fprintf(ioQQQ,PrintEfmt("%9.2e", StatesElemNEW[ipHELIUM][ipHELIUM-ipHE_LIKE][ipHe3p3P].Pop*fac ));
00319 fprintf(ioQQQ,PrintEfmt("%9.2e", StatesElemNEW[ipHELIUM][ipHELIUM-ipHE_LIKE][ipHe3d3D].Pop*fac ));
00320 fprintf( ioQQQ, "\n" );
00321 }
00322 }
00323
00324
00325
00326 for( long ipISO = ipH_LIKE; ipISO < NISO; ipISO++ )
00327 {
00328 for( nelem=ipISO; nelem<LIMELM; ++nelem )
00329 {
00330 if( dense.lgElmtOn[nelem] )
00331 {
00332 if( iso.lgPrtLevelPops[ipISO][nelem] )
00333 {
00334 iso_prt_pops(ipISO, nelem, false);
00335 }
00336 if( iso.lgPrtDepartCoef[ipISO][nelem] )
00337 {
00338
00339
00340 iso_prt_pops(ipISO, nelem, true);
00341 }
00342 }
00343 }
00344 }
00345
00346
00347
00348 fprintf( ioQQQ, " Pressure NgasTgas");
00349 fprintf(ioQQQ,PrintEfmt("%9.2e", pressure.PresGasCurr/BOLTZMANN));
00350 fprintf( ioQQQ, " P(total)");
00351 fprintf(ioQQQ,PrintEfmt("%9.2e", pressure.PresTotlCurr));
00352 fprintf( ioQQQ, " P( gas )");
00353 fprintf(ioQQQ,PrintEfmt("%9.2e", pressure.PresGasCurr));
00354 fprintf( ioQQQ, " P(Radtn)");
00355 fprintf(ioQQQ,PrintEfmt("%9.2e", pressure.pres_radiation_lines_curr));
00356 fprintf( ioQQQ, " Rad accl");
00357 fprintf(ioQQQ,PrintEfmt("%9.2e", wind.AccelTotalOutward));
00358 fprintf( ioQQQ, " ForceMul");
00359 fprintf(ioQQQ,PrintEfmt("%9.2e", wind.fmul));
00360 fprintf( ioQQQ, "\n" );
00361
00362 fprintf( ioQQQ , " Texc(La) ");
00363 fprintf(ioQQQ,PrintEfmt("%9.2e", hydro.TexcLya ));
00364
00365 fprintf( ioQQQ , " T(I con)");
00366 fprintf(ioQQQ,PrintEfmt("%9.2e", Tincid ));
00367 fprintf( ioQQQ , " T(D con)");
00368 fprintf(ioQQQ,PrintEfmt("%9.2e", Tdiff ));
00369 fprintf( ioQQQ , " T(U tot)");
00370 fprintf(ioQQQ,PrintEfmt("%9.2e", TconTot ));
00371
00372 fprintf( ioQQQ , " nT (c+d)");
00373 fprintf(ioQQQ,PrintEfmt("%9.2e", Pcon_nT ));
00374
00375 fprintf( ioQQQ , " Prad/Gas");
00376 fprintf(ioQQQ,PrintEfmt("%9.2e", pressure.pbeta ));
00377
00378 fprintf( ioQQQ , " Pmag/Gas");
00379 fprintf(ioQQQ,PrintEfmt("%9.2e", magnetic.pressure / pressure.PresGasCurr) );
00380 fprintf( ioQQQ, "\n" );
00381
00382 if( gv.lgGrainPhysicsOn )
00383 {
00384 for( size_t nd=0; nd < gv.bin.size(); nd++ )
00385 {
00386
00387
00388
00389 chQHMark = (char)(( gv.bin[nd]->lgQHeat && gv.bin[nd]->lgUseQHeat ) ? '*' : ' ');
00390 fprintf( ioQQQ, "%-12.12s%c DustTemp",gv.bin[nd]->chDstLab, chQHMark);
00391 fprintf(ioQQQ,PrintEfmt("%9.2e", gv.bin[nd]->tedust));
00392 fprintf( ioQQQ, " Pot Volt");
00393 fprintf(ioQQQ,PrintEfmt("%9.2e", gv.bin[nd]->dstpot*EVRYD));
00394 fprintf( ioQQQ, " Chrg (e)");
00395 fprintf(ioQQQ,PrintEfmt("%9.2e", gv.bin[nd]->AveDustZ));
00396 fprintf( ioQQQ, " drf cm/s");
00397 fprintf(ioQQQ,PrintEfmt("%9.2e", gv.bin[nd]->DustDftVel));
00398 fprintf( ioQQQ, " Heating:");
00399 fprintf(ioQQQ,PrintEfmt("%9.2e", gv.bin[nd]->GasHeatPhotoEl));
00400 fprintf( ioQQQ, " Frac tot");
00401 fprintf(ioQQQ,PrintEfmt("%9.2e", gv.bin[nd]->GasHeatPhotoEl/thermal.htot));
00402 fprintf( ioQQQ, "\n" );
00403 }
00404 }
00405
00406
00407
00408 if( findspecies("CO")->hevmol > 0. )
00409 {
00410 fprintf( ioQQQ, " Molecules CH/Ctot:");
00411 fprintf(ioQQQ,PrintEfmt("%9.2e", findspecies("CH")->hevmol/dense.gas_phase[ipCARBON]));
00412 fprintf( ioQQQ, " CH+/Ctot");
00413 fprintf(ioQQQ,PrintEfmt("%9.2e", findspecies("CH+")->hevmol/dense.gas_phase[ipCARBON]));
00414 fprintf( ioQQQ, " CO/Ctot:");
00415 fprintf(ioQQQ,PrintEfmt("%9.2e", findspecies("CO")->hevmol/dense.gas_phase[ipCARBON]));
00416 fprintf( ioQQQ, " CO+/Ctot");
00417 fprintf(ioQQQ,PrintEfmt("%9.2e", findspecies("CO+")->hevmol/dense.gas_phase[ipCARBON]));
00418 fprintf( ioQQQ, " H2O/Otot");
00419 fprintf(ioQQQ,PrintEfmt("%9.2e", findspecies("H2O")->hevmol/dense.gas_phase[ipOXYGEN]));
00420 fprintf( ioQQQ, " OH/Ototl");
00421 fprintf(ioQQQ,PrintEfmt("%9.2e", findspecies("OH")->hevmol/dense.gas_phase[ipOXYGEN]));
00422 fprintf( ioQQQ, "\n");
00423 }
00424
00425
00426 H2_Prt_Zone();
00427
00428
00429 if( dense.lgElmtOn[ipLITHIUM] || dense.lgElmtOn[ipBERYLLIUM] ||
00430 (secondaries.csupra[ipHYDROGEN][0]>0.) )
00431 {
00432 fprintf( ioQQQ, " Lithium " );
00433 for( i=0; i < 4; i++ )
00434 {
00435 fprintf(ioQQQ,PrintEfmt("%9.2e", dense.xIonDense[ipLITHIUM][i]/MAX2(1e-35,dense.gas_phase[ipLITHIUM]) ));
00436 }
00437 fprintf( ioQQQ, " Berylliu" );
00438 for( i=0; i < 5; i++ )
00439 {
00440 fprintf(ioQQQ,PrintEfmt("%9.2e", dense.xIonDense[ipBERYLLIUM][i]/MAX2(1e-35,dense.gas_phase[ipBERYLLIUM])) );
00441 }
00442
00443
00444 fprintf( ioQQQ, " sec ion:" );
00445 fprintf(ioQQQ,PrintEfmt("%9.2e", secondaries.csupra[ipHYDROGEN][0]) );
00446 fprintf( ioQQQ, "\n" );
00447
00448
00449 if( prt.lgPrintHeating )
00450 {
00451 fprintf( ioQQQ, " " );
00452 for( i=0; i < 3; i++ )
00453 {
00454 fprintf(ioQQQ,PrintEfmt("%9.2e", thermal.heating[ipLITHIUM][i]/ thermal.htot) );
00455 }
00456 fprintf( ioQQQ, " " );
00457
00458 for( i=0; i < 4; i++ )
00459 {
00460 fprintf(ioQQQ,PrintEfmt("%9.2e", thermal.heating[ipBERYLLIUM][i]/thermal.htot ));
00461 }
00462 fprintf( ioQQQ, "\n" );
00463 }
00464 }
00465
00466
00467 if( dense.lgElmtOn[ipBORON] )
00468 {
00469 fprintf( ioQQQ, " Boron " );
00470 for( i=0; i < 6; i++ )
00471 {
00472 fprintf(ioQQQ,PrintEfmt("%9.2e", dense.xIonDense[ipBORON][i]/MAX2(1e-35,dense.gas_phase[ipBORON]) ));
00473 }
00474 fprintf( ioQQQ, "\n" );
00475
00476
00477 if( prt.lgPrintHeating )
00478 {
00479 fprintf( ioQQQ, " " );
00480 for( i=0; i < 5; i++ )
00481 {
00482 fprintf(ioQQQ,PrintEfmt("%9.2e", thermal.heating[ipBORON][i]/thermal.htot ));
00483 }
00484 fprintf( ioQQQ, "\n" );
00485 }
00486 }
00487
00488
00489 fprintf( ioQQQ, " Carbon " );
00490 for( i=0; i < 7; i++ )
00491 {
00492 fprintf(ioQQQ,PrintEfmt("%9.2e", dense.xIonDense[ipCARBON][i]/SDIV(dense.gas_phase[ipCARBON])) );
00493 }
00494
00495 fprintf( ioQQQ, " H2O+/O " );
00496 fprintf(ioQQQ,PrintEfmt("%9.2e", findspecies("H2O+")->hevmol/MAX2(1e-35,dense.gas_phase[ipOXYGEN]) ));
00497 fprintf( ioQQQ, " OH+/Otot" );
00498 fprintf(ioQQQ,PrintEfmt("%9.2e", findspecies("OH+")->hevmol/ MAX2(1e-35,dense.gas_phase[ipOXYGEN]) ));
00499
00500 fprintf( ioQQQ, " Hex(tot)" );
00501 fprintf(ioQQQ,PrintEfmt("%9.2e", thermal.heating[0][20] ));
00502 fprintf( ioQQQ, "\n" );
00503
00504
00505 if( prt.lgPrintHeating )
00506 {
00507 fprintf( ioQQQ, " " );
00508 for( i=0; i < ipCARBON+1; i++ )
00509 {
00510 fprintf(ioQQQ,PrintEfmt("%9.2e", thermal.heating[ipCARBON][i]/ thermal.htot) );
00511 }
00512 fprintf( ioQQQ, "\n" );
00513 }
00514
00515
00516 fprintf( ioQQQ, " Nitrogen " );
00517 for( i=1; i <= 8; i++ )
00518 {
00519 fprintf(ioQQQ,PrintEfmt("%9.2e",dense.xIonDense[ipNITROGEN][i-1]/ SDIV(dense.gas_phase[ipNITROGEN]) ));
00520 }
00521 fprintf( ioQQQ, " O2/Ototl" );
00522 fprintf(ioQQQ,PrintEfmt("%9.2e", findspecies("O2")->hevmol/MAX2(1e-35,dense.gas_phase[ipOXYGEN])));
00523 fprintf( ioQQQ, " O2+/Otot" );
00524 fprintf(ioQQQ,PrintEfmt("%9.2e", findspecies("O2+")->hevmol/ MAX2(1e-35,dense.gas_phase[ipOXYGEN]) ));
00525 fprintf( ioQQQ, "\n" );
00526
00527
00528 if( prt.lgPrintHeating )
00529 {
00530 fprintf( ioQQQ, " " );
00531 for( i=0; i < ipNITROGEN+1; i++ )
00532 {
00533 fprintf(ioQQQ,PrintEfmt("%9.2e", thermal.heating[ipNITROGEN][i]/ thermal.htot ));
00534 }
00535 fprintf( ioQQQ, "\n" );
00536 }
00537
00538 # if 0
00539
00540 fprintf( ioQQQ, " Oxygen " );
00541 for( i=1; i <= 9; i++ )
00542 {
00543 fprintf(ioQQQ,PrintEfmt("%9.2e",dense.xIonDense[ipOXYGEN][i-1]/ SDIV(dense.gas_phase[ipOXYGEN]) ));
00544 }
00545 fprintf( ioQQQ, "\n" );
00546
00547
00548 if( prt.lgPrintHeating )
00549 {
00550 fprintf( ioQQQ, " " );
00551 for( i=0; i < ipOXYGEN+1; i++ )
00552 {
00553 fprintf(ioQQQ,PrintEfmt("%9.2e", thermal.heating[ipOXYGEN][i]/ thermal.htot ));
00554 }
00555 fprintf( ioQQQ, "\n" );
00556 }
00557 # endif
00558
00559
00560
00561 for( nelem=ipOXYGEN; nelem < ipALUMINIUM; ++nelem )
00562 {
00563 if( dense.lgElmtOn[nelem] )
00564 {
00565
00566 fprintf( ioQQQ, " %10.10s ", elementnames.chElementName[nelem]);
00567
00568 for( i=0; i < nelem+2; i++ )
00569 {
00570 fprintf(ioQQQ,PrintEfmt("%9.2e", dense.xIonDense[nelem][i]/dense.gas_phase[nelem] ));
00571 }
00572 fprintf( ioQQQ, "\n" );
00573
00574
00575 if( prt.lgPrintHeating )
00576 {
00577 fprintf( ioQQQ, " " );
00578 for( i=0; i < nelem+1; i++ )
00579 {
00580 fprintf(ioQQQ,PrintEfmt("%9.2e", thermal.heating[nelem][i]/thermal.htot ));
00581 }
00582 fprintf( ioQQQ, "\n" );
00583 }
00584 }
00585 }
00586
00587
00588 for( nelem=ipALUMINIUM; nelem < LIMELM; ++nelem )
00589 {
00590 if( dense.lgElmtOn[nelem] )
00591 {
00592
00593
00594 enum {LINE=13};
00595
00596 ishift = MAX2(0,dense.IonHigh[nelem]-LINE+1);
00597
00598
00599 fprintf( ioQQQ, " %10.10s%2ld ", elementnames.chElementName[nelem],ishift );
00600
00601 for( i=0; i < LINE; i++ )
00602 {
00603 fprintf(ioQQQ,PrintEfmt("%9.2e", dense.xIonDense[nelem][i+ishift]/dense.gas_phase[nelem]) );
00604 }
00605 fprintf( ioQQQ, "\n" );
00606
00607
00608 if( prt.lgPrintHeating )
00609 {
00610 fprintf( ioQQQ, " " );
00611 for( i=0; i < LINE; i++ )
00612 {
00613 fprintf(ioQQQ,
00614 PrintEfmt("%9.2e", thermal.heating[nelem][i+ishift]/thermal.htot ));
00615 }
00616 fprintf( ioQQQ, "\n" );
00617 }
00618 }
00619 }
00620
00621
00622 FeIIPrint();
00623 return;
00624 }
00625
00626