00001
00002
00003
00004
00005
00006
00007 #include "cddefines.h"
00008 #include "physconst.h"
00009 #include "phycon.h"
00010 #include "called.h"
00011 #include "stopcalc.h"
00012 #include "thermal.h"
00013 #include "trace.h"
00014 #include "elementnames.h"
00015 #include "dense.h"
00016 #include "radius.h"
00017 #include "grainvar.h"
00018 #include "abund.h"
00019
00020
00021 STATIC void PrtElem(
00022
00023 const char *chJob,
00024
00025 const char *chLabl,
00026
00027 double abund_prt);
00028
00029
00030 void AbundancesPrt( void )
00031 {
00032 long int i;
00033 double GrainNumRelHydrSilicate ,
00034 GrainNumRelHydrCarbonaceous ,
00035 GrainNumRelHydr_PAH,
00036 GrainMassRelHydrSilicate,
00037 GrainMassRelHydrCarbonaceous,
00038 GrainMassRelHydr_PAH;
00039
00040 DEBUG_ENTRY( "AbundancesPrt()" );
00041
00042
00043 if( called.lgTalk )
00044 {
00045 PrtElem("initG"," ",0.);
00046 for( i=0; i < LIMELM; i++ )
00047 {
00048 if( dense.lgElmtOn[i] )
00049 {
00050
00051 PrtElem("fill",(char*)elementnames.chElementSym[i],
00052 abund.solar[i]);
00053 }
00054 }
00055
00056
00057 PrtElem("flus"," ",0.);
00058
00059 fprintf( ioQQQ, " \n" );
00060
00061
00062 if( gv.lgDustOn() )
00063 {
00064
00065
00066 PrtElem("initD"," ",0.);
00067 for( i=0; i < LIMELM; i++ )
00068 {
00069 if( gv.elmSumAbund[i]>SMALLFLOAT )
00070 {
00071
00072 PrtElem("fill",(char*)elementnames.chElementSym[i],
00073 gv.elmSumAbund[i]/dense.gas_phase[ipHYDROGEN]);
00074 }
00075 }
00076
00077 PrtElem("flus"," ",0.);
00078
00079 fprintf( ioQQQ, " \n" );
00080
00081
00082 GrainNumRelHydrSilicate = 0.;
00083 GrainNumRelHydrCarbonaceous = 0;
00084 GrainNumRelHydr_PAH = 0.;
00085 GrainMassRelHydrSilicate = 0.;
00086 GrainMassRelHydrCarbonaceous = 0;
00087 GrainMassRelHydr_PAH = 0.;
00088
00089 for( size_t nd=0; nd < gv.bin.size(); nd++ )
00090 {
00091
00092
00093
00094
00095 realnum DensityNumberPerHydrogen =
00096 (gv.bin[nd]->IntVol/gv.bin[nd]->AvVol)*gv.bin[nd]->dstAbund /
00097 gv.bin[nd]->GrnDpth;
00098
00099 realnum DensityMassPerHydrogen =
00100 gv.bin[nd]->IntVol*gv.bin[nd]->dustp[0]*gv.bin[nd]->dstAbund/
00101 (realnum)ATOMIC_MASS_UNIT / gv.bin[nd]->GrnDpth;
00102
00103
00104 if( gv.bin[nd]->matType == MAT_CAR || gv.bin[nd]->matType == MAT_CAR2 )
00105 {
00106
00107 GrainNumRelHydrCarbonaceous += DensityNumberPerHydrogen;
00108 GrainMassRelHydrCarbonaceous += DensityMassPerHydrogen;
00109 }
00110 else if( gv.bin[nd]->matType == MAT_SIL || gv.bin[nd]->matType == MAT_SIL2 )
00111 {
00112
00113 GrainNumRelHydrSilicate += DensityNumberPerHydrogen;
00114 GrainMassRelHydrSilicate += DensityMassPerHydrogen;
00115 }
00116 else if( gv.bin[nd]->matType == MAT_PAH || gv.bin[nd]->matType == MAT_PAH2 )
00117 {
00118
00119
00120
00121 GrainNumRelHydr_PAH += DensityNumberPerHydrogen;
00122 GrainMassRelHydr_PAH += DensityMassPerHydrogen;
00123 }
00124 else
00125 TotalInsanity();
00126 }
00127
00128
00129 fprintf(ioQQQ," Number of grains per hydrogen (scale=1) Mass of grains per hydrogen (scale=1)\n");
00130 fprintf(ioQQQ," Carbonaceous: %.3f Silicate: %.3f PAH: %.3f Carbonaceous: %.3f Silicate: %.3f PAH: %.3f\n\n" ,
00131 log10( MAX2( 1e-30, GrainNumRelHydrCarbonaceous ) ) ,
00132 log10( MAX2( 1e-30, GrainNumRelHydrSilicate ) ) ,
00133 log10( MAX2( 1e-30, GrainNumRelHydr_PAH ) ) ,
00134 log10( MAX2( 1e-30, GrainMassRelHydrCarbonaceous ) ) ,
00135 log10( MAX2( 1e-30, GrainMassRelHydrSilicate ) ) ,
00136 log10( MAX2( 1e-30, GrainMassRelHydr_PAH ) ) );
00137 }
00138 }
00139 return;
00140 }
00141
00142
00143 void AbundancesSet(void)
00144 {
00145 long int i,
00146 nelem;
00147 double fac;
00148 static bool lgFirstCall=true;
00149 static bool lgElOnOff[LIMELM];
00150
00151 DEBUG_ENTRY( "AbundancesSet()" );
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161 if( lgFirstCall )
00162 {
00163
00164 for( i=0; i<LIMELM; ++i )
00165 {
00166 lgElOnOff[i] = dense.lgElmtOn[i];
00167 }
00168 }
00169 lgFirstCall = false;
00170
00171
00172
00173 for( i=ipHYDROGEN; i<LIMELM; ++i )
00174 {
00175 dense.lgElmtOn[i] = lgElOnOff[i] && dense.lgElmtOn[i];
00176 }
00177
00178
00179 for( i=ipHELIUM; i < LIMELM; i++ )
00180 {
00181 abund.solar[i] /= abund.solar[0];
00182 }
00183 abund.solar[ipHYDROGEN] = 1.;
00184
00185
00186
00187 abund.solar[ipHELIUM] *= abund.depset[1]*abund.ScaleElement[1];
00188
00189
00190
00191
00192 if( dense.lgDenFlucOn )
00193 {
00194
00195 fac = 1.;
00196 }
00197 else
00198 {
00199
00200 fac = dense.cfirst*cos(dense.flcPhase) + dense.csecnd;
00201 }
00202
00203 for( i=ipLITHIUM; i < LIMELM; i++ )
00204 {
00205 abund.solar[i] *= (realnum)(abund.ScaleMetals*abund.depset[i]*
00206 abund.ScaleElement[i]*fac);
00207 }
00208
00209
00210 if( abund.lgAbTaON )
00211 {
00212 for( nelem=ipHELIUM; nelem < LIMELM; ++nelem )
00213 {
00214 if( abund.lgAbunTabl[nelem] )
00215 {
00216 abund.solar[nelem] = (realnum)(AbundancesTable(radius.Radius,
00217 radius.depth,nelem+1));
00218 }
00219 }
00220 }
00221
00222
00223
00224
00225
00226
00227 for( nelem=ipHYDROGEN; nelem < LIMELM; ++nelem )
00228 {
00229
00230
00231 if( abund.solar[nelem] < dense.AbundanceLimit )
00232 dense.lgElmtOn[nelem] = false;
00233
00234 if( dense.lgElmtOn[nelem] )
00235 {
00236 dense.SetGasPhaseDensity( nelem, abund.solar[nelem]*dense.gas_phase[ipHYDROGEN] );
00237 if( dense.gas_phase[nelem] <= 0. )
00238 {
00239 fprintf( ioQQQ, " Abundances must be greater than zero. "
00240 "Check entered abundance for element%3ld = %2.2s\n",
00241 nelem, elementnames.chElementSym[nelem] );
00242 cdEXIT(EXIT_FAILURE);
00243 }
00244 else if( dense.gas_phase[nelem] < SMALLFLOAT )
00245 {
00246 fprintf(ioQQQ," Abundance for %s is %.2e, less than lower "
00247 "limit of %.3e, so turning element off.\n",
00248 elementnames.chElementSym[nelem],
00249 dense.gas_phase[nelem],
00250 SMALLFLOAT );
00251 dense.lgElmtOn[nelem] = false;
00252 }
00253 else if( dense.gas_phase[nelem] > MAX_DENSITY )
00254 {
00255 fprintf(ioQQQ," Abundance for %s is %.2e. This version of Cloudy does not "
00256 "permit densities greater than %e cm-3.\n",
00257 elementnames.chElementSym[nelem],
00258 dense.gas_phase[nelem],
00259 MAX_DENSITY );
00260 cdEXIT(EXIT_FAILURE);
00261 }
00262 }
00263 if( !dense.lgElmtOn[nelem] )
00264 {
00265
00266 dense.SetGasPhaseDensity( nelem, 0. );
00267 }
00268
00269
00270 dense.xIonDense[nelem][0] = dense.gas_phase[nelem];
00271 for( long int ion=1; ion < LIMELM+1; ion++ )
00272 {
00273 dense.xIonDense[nelem][ion] = 0.;
00274 }
00275
00276 }
00277
00278 SumDensities();
00279
00280
00281
00282 if( called.lgTalk && (StopCalc.TempLoStopZone < phycon.TEMP_STOP_DEFAULT ||
00283
00284 (thermal.ConstTemp > 0. && thermal.ConstTemp < phycon.TEMP_STOP_DEFAULT ) ) )
00285 {
00286
00287
00288 if( dense.lgElmtOn[ipOXYGEN] && dense.gas_phase[ipCARBON]/SDIV( dense.gas_phase[ipOXYGEN]) >= 1. )
00289 {
00290 fprintf( ioQQQ, "\n >>> \n"
00291 " >>> The simulation is going into possibly molecular gas but the carbon/oxygen abundance ratio is greater than unity.\n" );
00292 fprintf( ioQQQ, " >>> Standard interstellar chemistry networks are designed for environments with C/O < 1.\n" );
00293 fprintf( ioQQQ, " >>> The chemistry network may (or may not) collapse deep in molecular regions where CO is fully formed.\n" );
00294 fprintf( ioQQQ, " >>> \n\n\n\n\n" );
00295 }
00296 }
00297
00298 if( trace.lgTrace )
00299 {
00300 realnum sumx , sumy , sumz = 0.;
00301
00302 sumx = dense.gas_phase[ipHYDROGEN]*dense.AtomicWeight[ipHYDROGEN];
00303 sumy = dense.gas_phase[ipHELIUM]*dense.AtomicWeight[ipHELIUM];
00304
00305 fprintf( ioQQQ, "\n AbundancesSet sets following densities (cm^-3); \n" );
00306 for( i=0; i<3; i++ )
00307 {
00308 for( nelem=i*10; nelem < i*10+10; nelem++ )
00309 {
00310 fprintf( ioQQQ, " %2.2s", elementnames.chElementSym[nelem] );
00311 PrintE82( ioQQQ, dense.gas_phase[nelem] );
00312 if( nelem>ipHELIUM )
00313 sumz += dense.gas_phase[nelem]*dense.AtomicWeight[nelem];
00314 }
00315 fprintf( ioQQQ, " \n" );
00316 }
00317 fprintf( ioQQQ, "\n AbundancesSet sets following abundances rel to H; \n" );
00318 for( i=0; i<3; i++ )
00319 {
00320 for( nelem=i*10; nelem < i*10+10; nelem++ )
00321 {
00322 fprintf( ioQQQ, " %2.2s", elementnames.chElementSym[nelem] );
00323 PrintE82( ioQQQ, dense.gas_phase[nelem]/dense.gas_phase[ipHYDROGEN] );
00324 }
00325 fprintf( ioQQQ, " \n" );
00326 }
00327 fprintf( ioQQQ, " \n" );
00328 fprintf(ioQQQ," Gas-phase mass fractions, X:%.3e Y:%.3e Z:%.3e\n\n",
00329 sumx/SDIV(sumx+sumy+sumz) ,
00330 sumy/SDIV(sumx+sumy+sumz) ,
00331 sumz/SDIV(sumx+sumy+sumz) );
00332 }
00333 return;
00334 }
00335
00336
00337 #define NELEM1LINE 9
00338
00339
00340 STATIC void PrtElem(
00341
00342 const char *chJob,
00343
00344 const char *chLabl,
00345
00346 double abund_prt)
00347 {
00348 static char chAllLabels[NELEM1LINE][14];
00349 long int i,
00350 noffset;
00351 static long int nelem;
00352
00353 DEBUG_ENTRY( "PrtElem()" );
00354
00355 if( strcmp(chJob,"initG") == 0 )
00356 {
00357
00358 nelem = 0;
00359 fprintf( ioQQQ,
00360 " Gas Phase Chemical Composition\n" );
00361 }
00362 else if( strcmp(chJob,"initD") == 0 )
00363 {
00364
00365 nelem = 0;
00366 fprintf( ioQQQ,
00367 " Grain Chemical Composition\n" );
00368 }
00369
00370 else if( strcmp(chJob,"fill") == 0 )
00371 {
00372
00373 abund_prt = log10( abund_prt );
00374
00375 sprintf( chAllLabels[nelem], " %2.2s:%8.4f", chLabl, abund_prt );
00376 if( nelem == NELEM1LINE-1 )
00377 {
00378
00379 fprintf( ioQQQ, " " );
00380 for( i=0; i < NELEM1LINE; i++ )
00381 {
00382 fprintf( ioQQQ, "%13.13s", chAllLabels[i] );
00383 }
00384 fprintf( ioQQQ, "\n" );
00385
00386 nelem = 0;
00387 }
00388 else
00389 {
00390
00391 ++nelem;
00392 }
00393 }
00394
00395 # if 0
00396
00397 else if( strcmp(chJob,"fillp") == 0 )
00398 {
00399
00400 abund_prt = log10( abund_prt );
00401
00402
00403 sprintf( chAllLabels[nelem], " %2.2s:%8.4f", chLabl, abund_prt );
00404 if( nelem == NELEM1LINE-1 )
00405 {
00406
00407 fprintf( ioQQQ, " " );
00408 for( i=0; i < NELEM1LINE; i++ )
00409 {
00410 fprintf( ioQQQ, "%13.13s", chAllLabels[i] );
00411 }
00412 fprintf( ioQQQ, "\n" );
00413
00414 nelem = 0;
00415 }
00416 else
00417 {
00418
00419 ++nelem;
00420 }
00421 }
00422 # endif
00423
00424 else if( strcmp(chJob,"flus") == 0 )
00425 {
00426
00427 i = NELEM1LINE - (nelem - 2);
00428 noffset = i/2-1;
00429
00430 fprintf( ioQQQ, " " );
00431
00432 for(i=0; i < noffset; i++)
00433 {
00434
00435 fprintf( ioQQQ, " " );
00436 }
00437
00438
00439 if( !(nelem%2) && nelem > 0)
00440 fprintf( ioQQQ," ");
00441
00442 for( i=0; i < nelem; i++ )
00443 {
00444 fprintf( ioQQQ, "%13.13s", chAllLabels[i] );
00445 }
00446
00447 fprintf( ioQQQ, "\n" );
00448 }
00449 else
00450 {
00451 fprintf( ioQQQ, " PrtElem does not understand job=%4.4s\n",
00452 chJob );
00453 cdEXIT(EXIT_FAILURE);
00454 }
00455 return;
00456 }
00457
00458
00459
00460 double AbundancesTable(double r0,
00461 double depth,
00462 long int iel)
00463 {
00464 bool lgHit;
00465 long int j;
00466 double frac,
00467 tababun_v,
00468 x;
00469
00470 DEBUG_ENTRY( "AbundancesTable()" );
00471
00472
00473
00474
00475 if( abund.lgAbTaDepth[iel-1] )
00476 {
00477
00478 x = log10(depth);
00479 }
00480 else
00481 {
00482
00483 x = log10(r0);
00484 }
00485
00486
00487 tababun_v = -DBL_MAX;
00488
00489 if( x < abund.AbTabRad[0][iel-1] || x >= abund.AbTabRad[abund.nAbunTabl-1][iel-1] )
00490 {
00491 fprintf( ioQQQ, " requested radius outside range of AbundancesTable\n" );
00492 fprintf( ioQQQ, " radius was%10.2e min, max=%10.2e%10.2e\n",
00493 x, abund.AbTabRad[0][iel-1], abund.AbTabRad[abund.nAbunTabl-1][iel-1] );
00494 cdEXIT(EXIT_FAILURE);
00495 }
00496
00497 else
00498 {
00499 lgHit = false;
00500 j = 1;
00501
00502 while( !lgHit && j <= abund.nAbunTabl - 1 )
00503 {
00504 if( abund.AbTabRad[j-1][iel-1] <= (realnum)x &&
00505 abund.AbTabRad[j][iel-1] > (realnum)x )
00506 {
00507 frac = (x - abund.AbTabRad[j-1][iel-1])/(abund.AbTabRad[j][iel-1] -
00508 abund.AbTabRad[j-1][iel-1]);
00509 tababun_v = abund.AbTabFac[j-1][iel-1] + frac*
00510 (abund.AbTabFac[j][iel-1] - abund.AbTabFac[j-1][iel-1]);
00511 lgHit = true;
00512 }
00513 ++j;
00514 }
00515
00516 if( !lgHit )
00517 {
00518 fprintf( ioQQQ, " radius outran dlaw table scale, requested=%6.2f largest=%6.2f\n",
00519 x, abund.AbTabRad[abund.nAbunTabl-1][iel-1] );
00520 cdEXIT(EXIT_FAILURE);
00521 }
00522 }
00523
00524
00525 tababun_v = pow(10.,tababun_v);
00526 return( tababun_v );
00527 }
00528
00529 #ifdef _MSC_VER
00530 # pragma warning( disable : 4305 )
00531
00532 #endif
00533
00534 void AbundancesZero(void)
00535 {
00536 long int i;
00537
00538 DEBUG_ENTRY( "AbundancesZero()" );
00539
00540
00541
00542 for( int nelem=ipHYDROGEN; nelem<LIMELM; ++nelem )
00543 {
00544 abund.lgElmONapn[nelem] = true;
00545 abund.lgElmONahii[nelem] = true;
00546 abund.lgElmONaism[nelem] = true;
00547 abund.lgElmONaCrab[nelem] = true;
00548 }
00549
00550
00551
00552 abund.aCrab[ipHYDROGEN] = 1.0;
00553 abund.aCrab[ipHELIUM] = 7000e-4;
00554 abund.aCrab[ipLITHIUM] = 2.04e-9;
00555 abund.lgElmONaCrab[ipLITHIUM] = false;
00556 abund.aCrab[ipBERYLLIUM] = 2.63e-11;
00557 abund.lgElmONaCrab[ipBERYLLIUM] = false;
00558 abund.aCrab[ipBORON] = 7.59e-10;
00559 abund.lgElmONaCrab[ipBORON] = false;
00560 abund.aCrab[ipCARBON] = 70e-4;
00561 abund.aCrab[ipNITROGEN] = 1.23e-4;
00562 abund.aCrab[ipOXYGEN] = 17e-4;
00563 abund.aCrab[ipFLUORINE] = 3.02e-8;
00564 abund.lgElmONaCrab[ipFLUORINE] = false;
00565 abund.aCrab[ipNEON] = 5.33e-4;
00566 abund.aCrab[ipSODIUM] = 2.06e-6;
00567 abund.lgElmONaCrab[ipSODIUM] = false;
00568 abund.aCrab[ipMAGNESIUM] = 0.80e-4;
00569 abund.aCrab[ipALUMINIUM] = 2.95e-6;
00570 abund.lgElmONaCrab[ipALUMINIUM] = false;
00571 abund.aCrab[ipSILICON] = 3.55e-5;
00572 abund.lgElmONaCrab[ipSILICON] = false;
00573 abund.aCrab[ipPHOSPHORUS] = 3.73e-7;
00574 abund.lgElmONaCrab[ipPHOSPHORUS] = false;
00575 abund.aCrab[ipSULPHUR] = 0.35e-4;
00576 abund.aCrab[ipCHLORINE] = 1.88e-7;
00577 abund.lgElmONaCrab[ipCHLORINE] = false;
00578 abund.aCrab[ipARGON] = 3.98e-6;
00579 abund.lgElmONaCrab[ipARGON] = false;
00580 abund.aCrab[ipPOTASSIUM] = 1.35e-7;
00581 abund.lgElmONaCrab[ipPOTASSIUM] = false;
00582 abund.aCrab[ipCALCIUM] = 2.29e-6;
00583 abund.lgElmONaCrab[ipCALCIUM] = false;
00584 abund.aCrab[ipSCANDIUM] = 1.58e-9;
00585 abund.lgElmONaCrab[ipSCANDIUM] = false;
00586 abund.aCrab[ipTITANIUM] = 1.10e-7;
00587 abund.lgElmONaCrab[ipTITANIUM] = false;
00588 abund.aCrab[ipVANADIUM] = 1.05e-8;
00589 abund.lgElmONaCrab[ipVANADIUM] = false;
00590 abund.aCrab[ipCHROMIUM] = 4.84e-7;
00591 abund.lgElmONaCrab[ipCHROMIUM] = false;
00592 abund.aCrab[ipMANGANESE] = 3.42e-7;
00593 abund.lgElmONaCrab[ipMANGANESE] = false;
00594 abund.aCrab[ipIRON] = 3.24e-5;
00595 abund.aCrab[ipCOBALT] = 8.32e-8;
00596 abund.lgElmONaCrab[ipCOBALT] = false;
00597 abund.aCrab[ipNICKEL] = 1.76e-6;
00598 abund.lgElmONaCrab[ipNICKEL] = false;
00599 abund.aCrab[ipCOPPER] = 1.87e-8;
00600 abund.lgElmONaCrab[ipCOPPER] = false;
00601 abund.aCrab[ipZINC] = 4.52e-8;
00602 abund.lgElmONaCrab[ipZINC] = false;
00603
00604
00605
00606
00607 abund.SolarSave[ipHYDROGEN] = 1.0f;
00608 abund.SolarSave[ipHELIUM] = 0.100f;
00609 abund.SolarSave[ipLITHIUM] = 2.04e-9f;
00610 abund.SolarSave[ipBERYLLIUM] = 2.63e-11f;
00611 abund.SolarSave[ipBORON] = 6.17E-10f;
00612
00613
00614 abund.SolarSave[ipCARBON] = 2.45e-4f;
00615
00616
00617
00618
00619 abund.SolarSave[ipNITROGEN] = 8.51e-5f;
00620
00621
00622 abund.SolarSave[ipOXYGEN] = 4.90e-4f;
00623 abund.SolarSave[ipFLUORINE] = 3.02e-8f;
00624
00625
00626
00627
00628 abund.SolarSave[ipNEON] = 1.00e-4f;
00629 abund.SolarSave[ipSODIUM] = 2.14e-6f;
00630
00631
00632
00633
00634 abund.SolarSave[ipMAGNESIUM] = 3.47e-5f;
00635 abund.SolarSave[ipALUMINIUM] = 2.95e-6f;
00636
00637
00638
00639
00640 abund.SolarSave[ipSILICON] = 3.47e-5f;
00641 abund.SolarSave[ipPHOSPHORUS] = 3.20e-7f;
00642 abund.SolarSave[ipSULPHUR] = 1.84e-5f;
00643 abund.SolarSave[ipCHLORINE] = 1.91e-7f;
00644 abund.SolarSave[ipARGON] = 2.51e-6f;
00645 abund.SolarSave[ipPOTASSIUM] = 1.32e-7f;
00646 abund.SolarSave[ipCALCIUM] = 2.29e-6f;
00647 abund.SolarSave[ipSCANDIUM] = 1.48e-9f;
00648 abund.SolarSave[ipTITANIUM] = 1.05e-7f;
00649 abund.SolarSave[ipVANADIUM] = 1.00e-8f;
00650 abund.SolarSave[ipCHROMIUM] = 4.68e-7f;
00651 abund.SolarSave[ipMANGANESE] = 2.88e-7f;
00652
00653
00654
00655
00656 abund.SolarSave[ipIRON] = 2.82e-5f;
00657 abund.SolarSave[ipCOBALT] = 8.32e-8f;
00658 abund.SolarSave[ipNICKEL] = 1.78e-6f;
00659 abund.SolarSave[ipCOPPER] = 1.62e-8f;
00660 abund.SolarSave[ipZINC] = 3.98e-8f;
00661
00662
00663
00664 abund.OldSolar84[ipHYDROGEN] = 1.0;
00665 abund.OldSolar84[ipHELIUM] = 0.100;
00666 abund.OldSolar84[ipLITHIUM] = 2.04e-9;
00667 abund.OldSolar84[ipBERYLLIUM] = 2.63e-11;
00668 abund.OldSolar84[ipBORON] = 7.59e-10;
00669 abund.OldSolar84[ipCARBON] = 3.55e-4;
00670 abund.OldSolar84[ipNITROGEN] = 9.33e-5;
00671 abund.OldSolar84[ipOXYGEN] = 7.41e-4;
00672 abund.OldSolar84[ipFLUORINE] = 3.02e-8;
00673 abund.OldSolar84[ipNEON] = 1.17e-4;
00674 abund.OldSolar84[ipSODIUM] = 2.06e-6;
00675 abund.OldSolar84[ipMAGNESIUM] = 3.80e-5;
00676 abund.OldSolar84[ipALUMINIUM] = 2.95e-6;
00677 abund.OldSolar84[ipSILICON] = 3.55e-5;
00678 abund.OldSolar84[ipPHOSPHORUS] = 3.73e-7;
00679 abund.OldSolar84[ipSULPHUR] = 1.62e-5;
00680 abund.OldSolar84[ipCHLORINE] = 1.88e-7;
00681 abund.OldSolar84[ipARGON] = 3.98e-6;
00682 abund.OldSolar84[ipPOTASSIUM] = 1.35e-7;
00683 abund.OldSolar84[ipCALCIUM] = 2.29e-6;
00684 abund.OldSolar84[ipSCANDIUM] = 1.58e-9;
00685 abund.OldSolar84[ipTITANIUM] = 1.10e-7;
00686 abund.OldSolar84[ipVANADIUM] = 1.05e-8;
00687 abund.OldSolar84[ipCHROMIUM] = 4.84e-7;
00688 abund.OldSolar84[ipMANGANESE] = 3.42e-7;
00689 abund.OldSolar84[ipIRON] = 3.24e-5;
00690 abund.OldSolar84[ipCOBALT] = 8.32e-8;
00691 abund.OldSolar84[ipNICKEL] = 1.76e-6;
00692 abund.OldSolar84[ipCOPPER] = 1.87e-8;
00693 abund.OldSolar84[ipZINC] = 4.52e-8;
00694
00695
00696
00697
00698 abund.GASS10[ipHYDROGEN] = 1.0;
00699 abund.GASS10[ipHELIUM] = 8.51e-02;
00700 abund.GASS10[ipLITHIUM] = 1.12e-11;
00701 abund.GASS10[ipBERYLLIUM] = 2.40e-11;
00702 abund.GASS10[ipBORON] = 5.01e-10;
00703 abund.GASS10[ipCARBON] = 2.69e-04;
00704 abund.GASS10[ipNITROGEN] = 6.76e-05;
00705 abund.GASS10[ipOXYGEN] = 4.90e-04;
00706 abund.GASS10[ipFLUORINE] = 3.63e-08;
00707 abund.GASS10[ipNEON] = 8.51e-05;
00708 abund.GASS10[ipSODIUM] = 1.74e-06;
00709 abund.GASS10[ipMAGNESIUM] = 3.98e-05;
00710 abund.GASS10[ipALUMINIUM] = 2.82e-06;
00711 abund.GASS10[ipSILICON] = 3.24e-05;
00712 abund.GASS10[ipPHOSPHORUS] = 2.57e-07;
00713 abund.GASS10[ipSULPHUR] = 1.32e-05;
00714 abund.GASS10[ipCHLORINE] = 3.16e-07;
00715 abund.GASS10[ipARGON] = 2.51e-06;
00716 abund.GASS10[ipPOTASSIUM] = 1.07e-07;
00717 abund.GASS10[ipCALCIUM] = 2.19e-06;
00718 abund.GASS10[ipSCANDIUM] = 1.41e-09;
00719 abund.GASS10[ipTITANIUM] = 8.91e-08;
00720 abund.GASS10[ipVANADIUM] = 8.51e-09;
00721 abund.GASS10[ipCHROMIUM] = 4.37e-07;
00722 abund.GASS10[ipMANGANESE] = 2.69e-07;
00723 abund.GASS10[ipIRON] = 3.16e-05;
00724 abund.GASS10[ipCOBALT] = 9.77e-08;
00725 abund.GASS10[ipNICKEL] = 1.66e-06;
00726 abund.GASS10[ipCOPPER] = 1.55e-08;
00727 abund.GASS10[ipZINC] = 3.63e-08;
00728
00729
00730 abund.anova[ipHYDROGEN] = 1.0;
00731 abund.anova[ipHELIUM] = 0.098;
00732 abund.anova[ipLITHIUM] = 2.04e-9;
00733 abund.anova[ipBERYLLIUM] = 2.6e-11;
00734 abund.anova[ipBORON] = 7.60e-9;
00735 abund.anova[ipCARBON] = 9.4e-4;
00736 abund.anova[ipNITROGEN] = 9.8e-3;
00737 abund.anova[ipOXYGEN] = 1.7e-2;
00738 abund.anova[ipFLUORINE] = 3.02e-8;
00739 abund.anova[ipNEON] = 2.03e-3;
00740 abund.anova[ipSODIUM] = 2.06e-6;
00741 abund.anova[ipMAGNESIUM] = 3.80e-5;
00742 abund.anova[ipALUMINIUM] = 2.95e-6;
00743 abund.anova[ipSILICON] = 3.55e-5;
00744 abund.anova[ipPHOSPHORUS] = 3.73e-7;
00745 abund.anova[ipSULPHUR] = 1.62e-5;
00746 abund.anova[ipCHLORINE] = 1.88e-7;
00747 abund.anova[ipARGON] = 3.63e-6;
00748 abund.anova[ipPOTASSIUM] = 1.35e-7;
00749 abund.anova[ipCALCIUM] = 2.29e-6;
00750 abund.anova[ipSCANDIUM] = 1.22e-9;
00751 abund.anova[ipTITANIUM] = 8.60e-8;
00752 abund.anova[ipVANADIUM] = 1.05e-8;
00753 abund.anova[ipCHROMIUM] = 4.84e-7;
00754 abund.anova[ipMANGANESE] = 3.42e-7;
00755 abund.anova[ipIRON] = 4.68e-5;
00756 abund.anova[ipCOBALT] = 2.24e-9;
00757 abund.anova[ipNICKEL] = 1.76e-6;
00758 abund.anova[ipCOPPER] = 1.87e-8;
00759 abund.anova[ipZINC] = 4.52e-8;
00760
00761
00762 abund.aprim[ipHYDROGEN] = 1.0;
00763 abund.aprim[ipHELIUM] = 0.072;
00764 abund.aprim[ipLITHIUM] = 1e-10;
00765 abund.aprim[ipBERYLLIUM] = 1e-16;
00766
00767 for( i=4; i < LIMELM; i++ )
00768 {
00769 abund.aprim[i] = 1e-25;
00770 }
00771
00772
00773
00774 abund.aism[ipHYDROGEN] = 1.;
00775 abund.aism[ipHELIUM] = 0.098;
00776 abund.aism[ipLITHIUM] = 5.4e-11;
00777 abund.aism[ipBERYLLIUM] = 1e-20;
00778 abund.lgElmONaism[ipBERYLLIUM] = false;
00779 abund.aism[ipBORON] = 8.9e-11;
00780 abund.aism[ipCARBON] = 2.51e-4;
00781 abund.aism[ipNITROGEN] = 7.94e-5;
00782
00783
00784
00785 abund.aism[ipOXYGEN] = 3.19e-4;
00786
00787
00788
00789 abund.aism[ipFLUORINE] = 2.0e-8;
00790 abund.aism[ipNEON] = 1.23e-4;
00791 abund.aism[ipSODIUM] = 3.16e-7;
00792 abund.aism[ipMAGNESIUM] = 1.26e-5;
00793 abund.aism[ipALUMINIUM] = 7.94e-8;
00794 abund.aism[ipSILICON] = 3.16e-6;
00795 abund.aism[ipPHOSPHORUS] = 1.6e-7;
00796 abund.aism[ipSULPHUR] = 3.24e-5;
00797 abund.aism[ipCHLORINE] = 1e-7;
00798 abund.aism[ipARGON] = 2.82e-6;
00799 abund.aism[ipPOTASSIUM] = 1.1e-8;
00800 abund.aism[ipCALCIUM] = 4.1e-10;
00801 abund.aism[ipSCANDIUM] = 1e-20;
00802 abund.lgElmONaism[ipSCANDIUM] = false;
00803 abund.aism[ipTITANIUM] = 5.8e-10;
00804 abund.aism[ipVANADIUM] = 1.0e-10;
00805 abund.aism[ipCHROMIUM] = 1.0e-8;
00806 abund.aism[ipMANGANESE] = 2.3e-8;
00807 abund.aism[ipIRON] = 6.31e-7;
00808
00809
00810
00811 abund.aism[ipCOBALT] = 5.9e-9;
00812 abund.aism[ipNICKEL] = 1.82e-8;
00813 abund.aism[ipCOPPER] = 1.5e-9;
00814 abund.aism[ipZINC] = 2.0e-8;
00815
00816
00817
00818
00819 abund.ahii[ipHYDROGEN] = 1.;
00820 abund.ahii[ipHELIUM] = 0.095;
00821 abund.ahii[ipLITHIUM] = 5.4e-11;
00822 abund.ahii[ipBERYLLIUM] = 1e-20;
00823 abund.lgElmONahii[ipBERYLLIUM] = false;
00824 abund.ahii[ipBORON] = 8.9e-11;
00825 abund.ahii[ipCARBON] = 3.e-4;
00826 abund.ahii[ipNITROGEN] = 7.0e-5;
00827 abund.ahii[ipOXYGEN] = 4.0e-4;
00828 abund.ahii[ipFLUORINE] = 1e-20;
00829 abund.lgElmONahii[ipFLUORINE] = false;
00830 abund.ahii[ipNEON] = 6e-5;
00831 abund.ahii[ipSODIUM] = 3e-7;
00832 abund.ahii[ipMAGNESIUM] = 3.e-6;
00833 abund.ahii[ipALUMINIUM] = 2.e-7;
00834 abund.ahii[ipSILICON] = 4.e-6;
00835 abund.ahii[ipPHOSPHORUS] = 1.6e-7;
00836 abund.ahii[ipSULPHUR] = 1.0e-5;
00837 abund.ahii[ipCHLORINE] = 1.e-7;
00838 abund.ahii[ipARGON] = 3.e-6;
00839 abund.ahii[ipPOTASSIUM] = 1.1e-8;
00840 abund.ahii[ipCALCIUM] = 2.e-8;
00841 abund.ahii[ipSCANDIUM] = 1e-20;
00842 abund.lgElmONahii[ipSCANDIUM] = false;
00843 abund.ahii[ipTITANIUM] = 5.8e-10;
00844 abund.ahii[ipVANADIUM] = 1.0e-10;
00845 abund.ahii[ipCHROMIUM] = 1.0e-8;
00846 abund.ahii[ipMANGANESE] = 2.3e-8;
00847 abund.ahii[ipIRON] = 3.0e-6;
00848 abund.ahii[ipCOBALT] = 1e-20;
00849 abund.lgElmONahii[ipCOBALT] = false;
00850 abund.ahii[ipNICKEL] = 1e-7;
00851 abund.ahii[ipCOPPER] = 1.5e-9;
00852 abund.ahii[ipZINC] = 2.0e-8;
00853
00854
00855
00856 abund.apn[ipHYDROGEN] = 1.;
00857 abund.apn[ipHELIUM] = 0.1;
00858 abund.apn[ipLITHIUM] = 1e-20;
00859 abund.lgElmONapn[ipLITHIUM] = false;
00860 abund.apn[ipBERYLLIUM] = 1e-20;
00861 abund.lgElmONapn[ipBERYLLIUM] = false;
00862 abund.apn[ipBORON] = 1e-20;
00863 abund.lgElmONapn[ipBORON] = false;
00864 abund.apn[ipCARBON] = 7.8e-4;
00865 abund.apn[ipNITROGEN] = 1.8e-4;
00866 abund.apn[ipOXYGEN] = 4.4e-4;
00867 abund.apn[ipFLUORINE] = 3e-7;
00868 abund.apn[ipNEON] = 1.1e-4;
00869 abund.apn[ipSODIUM] = 1.9e-6;
00870 abund.apn[ipMAGNESIUM] = 1.6e-6;
00871 abund.apn[ipALUMINIUM] = 2.7e-7;
00872 abund.apn[ipSILICON] = 1e-5;
00873 abund.apn[ipPHOSPHORUS] = 2e-7;
00874 abund.apn[ipSULPHUR] = 1e-5;
00875 abund.apn[ipCHLORINE] = 1.7e-7;
00876 abund.apn[ipARGON] = 2.7e-6;
00877 abund.apn[ipPOTASSIUM] = 1.2e-7;
00878 abund.apn[ipCALCIUM] = 1.2e-8;
00879 abund.apn[ipSCANDIUM] = 1e-20;
00880 abund.lgElmONapn[ipSCANDIUM] = false;
00881 abund.apn[ipTITANIUM] = 1e-20;
00882 abund.lgElmONapn[ipTITANIUM] = false;
00883 abund.apn[ipVANADIUM] = 1e-20;
00884 abund.lgElmONapn[ipVANADIUM] = false;
00885 abund.apn[ipCHROMIUM] = 1e-20;
00886 abund.lgElmONapn[ipCHROMIUM] = false;
00887 abund.apn[ipMANGANESE] = 1e-20;
00888 abund.lgElmONapn[ipMANGANESE] = false;
00889 abund.apn[ipIRON] = 5.0e-7;
00890 abund.apn[ipCOBALT] = 1e-20;
00891 abund.lgElmONapn[ipCOBALT] = false;
00892 abund.apn[ipNICKEL] = 1.8e-8;
00893 abund.apn[ipCOPPER] = 1e-20;
00894 abund.lgElmONapn[ipCOPPER] = false;
00895 abund.apn[ipZINC] = 1e-20;
00896 abund.lgElmONapn[ipZINC] = false;
00897
00898
00899 abund.camern[ipHYDROGEN] = 1.;
00900 abund.camern[ipHELIUM] = .0677;
00901 abund.camern[ipLITHIUM] = 2.2e-9;
00902 abund.camern[ipBERYLLIUM] = 4.5e-11;
00903 abund.camern[ipBORON] = 3.4e-10;
00904 abund.camern[ipCARBON] = 4.22e-4;
00905 abund.camern[ipNITROGEN] = 8.72e-5;
00906 abund.camern[ipOXYGEN] = 6.93e-4;
00907 abund.camern[ipFLUORINE] = 2.9e-8;
00908 abund.camern[ipNEON] = 9.77e-5;
00909 abund.camern[ipSODIUM] = 2.25e-6;
00910 abund.camern[ipMAGNESIUM] = 3.98e-5;
00911 abund.camern[ipALUMINIUM] = 3.20e-6;
00912 abund.camern[ipSILICON] = 3.76e-5;
00913 abund.camern[ipPHOSPHORUS] = 2.4e-7;
00914 abund.camern[ipSULPHUR] = 1.88e-5;
00915 abund.camern[ipCHLORINE] = 1.78e-7;
00916 abund.camern[ipARGON] = 3.99e-6;
00917 abund.camern[ipPOTASSIUM] = 1.3e-7;
00918 abund.camern[ipCALCIUM] = 2.35e-6;
00919 abund.camern[ipSCANDIUM] = 1.16e-9;
00920 abund.camern[ipTITANIUM] = 9.0e-8;
00921 abund.camern[ipVANADIUM] = 9.5e-9;
00922 abund.camern[ipCHROMIUM] = 4.8e-7;
00923 abund.camern[ipMANGANESE] = 3.5e-7;
00924 abund.camern[ipIRON] = 3.38e-5;
00925 abund.camern[ipCOBALT] = 8.27e-8;
00926 abund.camern[ipNICKEL] = 1.80e-6;
00927 abund.camern[ipCOPPER] = 2.0e-8;
00928 abund.camern[ipZINC] = 4.7e-8;
00929
00930
00931
00932 for( i=0; i < LIMELM; i++ )
00933 {
00934 abund.lgAGN[i] = false;
00935 }
00936 abund.lgAGN[ipHYDROGEN] = true;
00937 abund.lgAGN[ipHELIUM] = true;
00938 abund.lgAGN[ipCARBON] = true;
00939 abund.lgAGN[ipNITROGEN] = true;
00940 abund.lgAGN[ipOXYGEN] = true;
00941 abund.lgAGN[ipNEON] = true;
00942 abund.lgAGN[ipMAGNESIUM] = true;
00943 abund.lgAGN[ipSILICON] = true;
00944 abund.lgAGN[ipSULPHUR] = true;
00945 abund.lgAGN[ipARGON] = true;
00946 abund.lgAGN[ipIRON] = true;
00947 return;
00948 }
00949