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 for( nelem=ipHELIUM; nelem < LIMELM; ++nelem )
00227 {
00228
00229
00230 if( abund.solar[nelem] < dense.AbundanceLimit )
00231 dense.lgElmtOn[nelem] = false;
00232
00233 if( dense.lgElmtOn[nelem] )
00234 {
00235 dense.gas_phase[nelem] = abund.solar[nelem]*dense.gas_phase[ipHYDROGEN];
00236 if( dense.gas_phase[nelem] <= 0. )
00237 {
00238 fprintf( ioQQQ, " Abundances must be greater than zero. "
00239 "Check entered abundance for element%3ld = %2.2s\n",
00240 nelem, elementnames.chElementSym[nelem] );
00241 cdEXIT(EXIT_FAILURE);
00242 }
00243 else if( dense.gas_phase[nelem] < SMALLFLOAT )
00244 {
00245 fprintf(ioQQQ," Abundance for %s is %.2e, less than lower "
00246 "limit of %.3e, so turning element off.\n",
00247 elementnames.chElementSym[nelem],
00248 dense.gas_phase[nelem],
00249 SMALLFLOAT );
00250 dense.lgElmtOn[nelem] = false;
00251 }
00252 else if( dense.gas_phase[nelem] > MAX_DENSITY )
00253 {
00254 fprintf(ioQQQ," Abundance for %s is %.2e. This version of Cloudy does not "
00255 "permit densities greater than %e cm-3.\n",
00256 elementnames.chElementSym[nelem],
00257 dense.gas_phase[nelem],
00258 MAX_DENSITY );
00259 cdEXIT(EXIT_FAILURE);
00260 }
00261 }
00262 else
00263 {
00264
00265 dense.gas_phase[nelem] = 0.;
00266 }
00267 }
00268
00269
00270
00271 if( called.lgTalk && (StopCalc.TempLoStopZone < phycon.TEMP_STOP_DEFAULT ||
00272
00273 (thermal.ConstTemp > 0. && thermal.ConstTemp < phycon.TEMP_STOP_DEFAULT ) ) )
00274 {
00275
00276
00277 if( dense.lgElmtOn[ipOXYGEN] && dense.gas_phase[ipCARBON]/SDIV( dense.gas_phase[ipOXYGEN]) >= 1. )
00278 {
00279 fprintf( ioQQQ, "\n >>> \n"
00280 " >>> The simulation is going into possibly molecular gas but the carbon/oxygen abundance ratio is greater than unity.\n" );
00281 fprintf( ioQQQ, " >>> Standard interstellar chemistry networks are designed for environments with C/O < 1.\n" );
00282 fprintf( ioQQQ, " >>> The chemistry network may (or may not) collapse deep in molecular regions where CO is fully formed.\n" );
00283 fprintf( ioQQQ, " >>> \n\n\n\n\n" );
00284 }
00285 }
00286
00287 if( trace.lgTrace )
00288 {
00289 realnum sumx , sumy , sumz = 0.;
00290
00291 sumx = dense.gas_phase[ipHYDROGEN]*dense.AtomicWeight[ipHYDROGEN];
00292 sumy = dense.gas_phase[ipHELIUM]*dense.AtomicWeight[ipHELIUM];
00293
00294 fprintf( ioQQQ, "\n AbundancesSet sets following densities (cm^-3); \n" );
00295 for( i=0; i<3; i++ )
00296 {
00297 for( nelem=i*10; nelem < i*10+10; nelem++ )
00298 {
00299 fprintf( ioQQQ, " %2.2s", elementnames.chElementSym[nelem] );
00300 PrintE82( ioQQQ, dense.gas_phase[nelem] );
00301 if( nelem>ipHELIUM )
00302 sumz += dense.gas_phase[nelem]*dense.AtomicWeight[nelem];
00303 }
00304 fprintf( ioQQQ, " \n" );
00305 }
00306 fprintf( ioQQQ, "\n AbundancesSet sets following abundances rel to H; \n" );
00307 for( i=0; i<3; i++ )
00308 {
00309 for( nelem=i*10; nelem < i*10+10; nelem++ )
00310 {
00311 fprintf( ioQQQ, " %2.2s", elementnames.chElementSym[nelem] );
00312 PrintE82( ioQQQ, dense.gas_phase[nelem]/dense.gas_phase[ipHYDROGEN] );
00313 }
00314 fprintf( ioQQQ, " \n" );
00315 }
00316 fprintf( ioQQQ, " \n" );
00317 fprintf(ioQQQ," Gas-phase mass fractions, X:%.3e Y:%.3e Z:%.3e\n\n",
00318 sumx/SDIV(sumx+sumy+sumz) ,
00319 sumy/SDIV(sumx+sumy+sumz) ,
00320 sumz/SDIV(sumx+sumy+sumz) );
00321 }
00322 return;
00323 }
00324
00325
00326 #define NELEM1LINE 9
00327
00328
00329 STATIC void PrtElem(
00330
00331 const char *chJob,
00332
00333 const char *chLabl,
00334
00335 double abund_prt)
00336 {
00337 static char chAllLabels[NELEM1LINE][14];
00338 long int i,
00339 noffset;
00340 static long int nelem;
00341
00342 DEBUG_ENTRY( "PrtElem()" );
00343
00344 if( strcmp(chJob,"initG") == 0 )
00345 {
00346
00347 nelem = 0;
00348 fprintf( ioQQQ,
00349 " Gas Phase Chemical Composition\n" );
00350 }
00351 else if( strcmp(chJob,"initD") == 0 )
00352 {
00353
00354 nelem = 0;
00355 fprintf( ioQQQ,
00356 " Grain Chemical Composition\n" );
00357 }
00358
00359 else if( strcmp(chJob,"fill") == 0 )
00360 {
00361
00362 abund_prt = log10( abund_prt );
00363
00364 sprintf( chAllLabels[nelem], " %2.2s:%8.4f", chLabl, abund_prt );
00365 if( nelem == NELEM1LINE-1 )
00366 {
00367
00368 fprintf( ioQQQ, " " );
00369 for( i=0; i < NELEM1LINE; i++ )
00370 {
00371 fprintf( ioQQQ, "%13.13s", chAllLabels[i] );
00372 }
00373 fprintf( ioQQQ, "\n" );
00374
00375 nelem = 0;
00376 }
00377 else
00378 {
00379
00380 ++nelem;
00381 }
00382 }
00383
00384 # if 0
00385
00386 else if( strcmp(chJob,"fillp") == 0 )
00387 {
00388
00389 abund_prt = log10( abund_prt );
00390
00391
00392 sprintf( chAllLabels[nelem], " %2.2s:%8.4f", chLabl, abund_prt );
00393 if( nelem == NELEM1LINE-1 )
00394 {
00395
00396 fprintf( ioQQQ, " " );
00397 for( i=0; i < NELEM1LINE; i++ )
00398 {
00399 fprintf( ioQQQ, "%13.13s", chAllLabels[i] );
00400 }
00401 fprintf( ioQQQ, "\n" );
00402
00403 nelem = 0;
00404 }
00405 else
00406 {
00407
00408 ++nelem;
00409 }
00410 }
00411 # endif
00412
00413 else if( strcmp(chJob,"flus") == 0 )
00414 {
00415
00416 i = NELEM1LINE - (nelem - 2);
00417 noffset = i/2-1;
00418
00419 fprintf( ioQQQ, " " );
00420
00421 for(i=0; i < noffset; i++)
00422 {
00423
00424 fprintf( ioQQQ, " " );
00425 }
00426
00427
00428 if( !(nelem%2) && nelem > 0)
00429 fprintf( ioQQQ," ");
00430
00431 for( i=0; i < nelem; i++ )
00432 {
00433 fprintf( ioQQQ, "%13.13s", chAllLabels[i] );
00434 }
00435
00436 fprintf( ioQQQ, "\n" );
00437 }
00438 else
00439 {
00440 fprintf( ioQQQ, " PrtElem does not understand job=%4.4s\n",
00441 chJob );
00442 cdEXIT(EXIT_FAILURE);
00443 }
00444 return;
00445 }
00446
00447
00448
00449 double AbundancesTable(double r0,
00450 double depth,
00451 long int iel)
00452 {
00453 bool lgHit;
00454 long int j;
00455 double frac,
00456 tababun_v,
00457 x;
00458
00459 DEBUG_ENTRY( "AbundancesTable()" );
00460
00461
00462
00463
00464 if( abund.lgAbTaDepth[iel-1] )
00465 {
00466
00467 x = log10(depth);
00468 }
00469 else
00470 {
00471
00472 x = log10(r0);
00473 }
00474
00475
00476 tababun_v = -DBL_MAX;
00477
00478 if( x < abund.AbTabRad[0][iel-1] || x >= abund.AbTabRad[abund.nAbunTabl-1][iel-1] )
00479 {
00480 fprintf( ioQQQ, " requested radius outside range of AbundancesTable\n" );
00481 fprintf( ioQQQ, " radius was%10.2e min, max=%10.2e%10.2e\n",
00482 x, abund.AbTabRad[0][iel-1], abund.AbTabRad[abund.nAbunTabl-1][iel-1] );
00483 cdEXIT(EXIT_FAILURE);
00484 }
00485
00486 else
00487 {
00488 lgHit = false;
00489 j = 1;
00490
00491 while( !lgHit && j <= abund.nAbunTabl - 1 )
00492 {
00493 if( abund.AbTabRad[j-1][iel-1] <= (realnum)x &&
00494 abund.AbTabRad[j][iel-1] > (realnum)x )
00495 {
00496 frac = (x - abund.AbTabRad[j-1][iel-1])/(abund.AbTabRad[j][iel-1] -
00497 abund.AbTabRad[j-1][iel-1]);
00498 tababun_v = abund.AbTabFac[j-1][iel-1] + frac*
00499 (abund.AbTabFac[j][iel-1] - abund.AbTabFac[j-1][iel-1]);
00500 lgHit = true;
00501 }
00502 ++j;
00503 }
00504
00505 if( !lgHit )
00506 {
00507 fprintf( ioQQQ, " radius outran dlaw table scale, requested=%6.2f largest=%6.2f\n",
00508 x, abund.AbTabRad[abund.nAbunTabl-1][iel-1] );
00509 cdEXIT(EXIT_FAILURE);
00510 }
00511 }
00512
00513
00514 tababun_v = pow(10.,tababun_v);
00515 return( tababun_v );
00516 }
00517
00518 #ifdef _MSC_VER
00519 # pragma warning( disable : 4305 )
00520
00521 #endif
00522
00523 void AbundancesZero(void)
00524 {
00525 long int i;
00526
00527 DEBUG_ENTRY( "AbundancesZero()" );
00528
00529
00530
00531 for( int nelem=ipHYDROGEN; nelem<LIMELM; ++nelem )
00532 {
00533 abund.lgElmONapn[nelem] = true;
00534 abund.lgElmONahii[nelem] = true;
00535 abund.lgElmONaism[nelem] = true;
00536 abund.lgElmONaCrab[nelem] = true;
00537 }
00538
00539
00540
00541 abund.aCrab[ipHYDROGEN] = 1.0;
00542 abund.aCrab[ipHELIUM] = 7000e-4;
00543 abund.aCrab[ipLITHIUM] = 2.04e-9;
00544 abund.lgElmONaCrab[ipLITHIUM] = false;
00545 abund.aCrab[ipBERYLLIUM] = 2.63e-11;
00546 abund.lgElmONaCrab[ipBERYLLIUM] = false;
00547 abund.aCrab[ipBORON] = 7.59e-10;
00548 abund.lgElmONaCrab[ipBORON] = false;
00549 abund.aCrab[ipCARBON] = 70e-4;
00550 abund.aCrab[ipNITROGEN] = 1.23e-4;
00551 abund.aCrab[ipOXYGEN] = 17e-4;
00552 abund.aCrab[ipFLUORINE] = 3.02e-8;
00553 abund.lgElmONaCrab[ipFLUORINE] = false;
00554 abund.aCrab[ipNEON] = 5.33e-4;
00555 abund.aCrab[ipSODIUM] = 2.06e-6;
00556 abund.lgElmONaCrab[ipSODIUM] = false;
00557 abund.aCrab[ipMAGNESIUM] = 0.80e-4;
00558 abund.aCrab[ipALUMINIUM] = 2.95e-6;
00559 abund.lgElmONaCrab[ipALUMINIUM] = false;
00560 abund.aCrab[ipSILICON] = 3.55e-5;
00561 abund.lgElmONaCrab[ipSILICON] = false;
00562 abund.aCrab[ipPHOSPHORUS] = 3.73e-7;
00563 abund.lgElmONaCrab[ipPHOSPHORUS] = false;
00564 abund.aCrab[ipSULPHUR] = 0.35e-4;
00565 abund.aCrab[ipCHLORINE] = 1.88e-7;
00566 abund.lgElmONaCrab[ipCHLORINE] = false;
00567 abund.aCrab[ipARGON] = 3.98e-6;
00568 abund.lgElmONaCrab[ipARGON] = false;
00569 abund.aCrab[ipPOTASSIUM] = 1.35e-7;
00570 abund.lgElmONaCrab[ipPOTASSIUM] = false;
00571 abund.aCrab[ipCALCIUM] = 2.29e-6;
00572 abund.lgElmONaCrab[ipCALCIUM] = false;
00573 abund.aCrab[ipSCANDIUM] = 1.58e-9;
00574 abund.lgElmONaCrab[ipSCANDIUM] = false;
00575 abund.aCrab[ipTITANIUM] = 1.10e-7;
00576 abund.lgElmONaCrab[ipTITANIUM] = false;
00577 abund.aCrab[ipVANADIUM] = 1.05e-8;
00578 abund.lgElmONaCrab[ipVANADIUM] = false;
00579 abund.aCrab[ipCHROMIUM] = 4.84e-7;
00580 abund.lgElmONaCrab[ipCHROMIUM] = false;
00581 abund.aCrab[ipMANGANESE] = 3.42e-7;
00582 abund.lgElmONaCrab[ipMANGANESE] = false;
00583 abund.aCrab[ipIRON] = 3.24e-5;
00584 abund.aCrab[ipCOBALT] = 8.32e-8;
00585 abund.lgElmONaCrab[ipCOBALT] = false;
00586 abund.aCrab[ipNICKEL] = 1.76e-6;
00587 abund.lgElmONaCrab[ipNICKEL] = false;
00588 abund.aCrab[ipCOPPER] = 1.87e-8;
00589 abund.lgElmONaCrab[ipCOPPER] = false;
00590 abund.aCrab[ipZINC] = 4.52e-8;
00591 abund.lgElmONaCrab[ipZINC] = false;
00592
00593
00594
00595
00596 abund.SolarSave[ipHYDROGEN] = 1.0f;
00597 abund.SolarSave[ipHELIUM] = 0.100f;
00598 abund.SolarSave[ipLITHIUM] = 2.04e-9f;
00599 abund.SolarSave[ipBERYLLIUM] = 2.63e-11f;
00600 abund.SolarSave[ipBORON] = 6.17E-10f;
00601
00602
00603
00604 abund.SolarSave[ipCARBON] = 2.45e-4f;
00605
00606
00607
00608
00609
00610 abund.SolarSave[ipNITROGEN] = 8.51e-5f;
00611
00612
00613
00614 abund.SolarSave[ipOXYGEN] = 4.90e-4f;
00615 abund.SolarSave[ipFLUORINE] = 3.02e-8f;
00616
00617
00618
00619
00620
00621 abund.SolarSave[ipNEON] = 1.00e-4f;
00622 abund.SolarSave[ipSODIUM] = 2.14e-6f;
00623
00624
00625
00626
00627
00628 abund.SolarSave[ipMAGNESIUM] = 3.47e-5f;
00629 abund.SolarSave[ipALUMINIUM] = 2.95e-6f;
00630
00631
00632
00633
00634
00635 abund.SolarSave[ipSILICON] = 3.47e-5f;
00636 abund.SolarSave[ipPHOSPHORUS] = 3.20e-7f;
00637 abund.SolarSave[ipSULPHUR] = 1.84e-5f;
00638 abund.SolarSave[ipCHLORINE] = 1.91e-7f;
00639 abund.SolarSave[ipARGON] = 2.51e-6f;
00640 abund.SolarSave[ipPOTASSIUM] = 1.32e-7f;
00641 abund.SolarSave[ipCALCIUM] = 2.29e-6f;
00642 abund.SolarSave[ipSCANDIUM] = 1.48e-9f;
00643 abund.SolarSave[ipTITANIUM] = 1.05e-7f;
00644 abund.SolarSave[ipVANADIUM] = 1.00e-8f;
00645 abund.SolarSave[ipCHROMIUM] = 4.68e-7f;
00646 abund.SolarSave[ipMANGANESE] = 2.88e-7f;
00647
00648
00649
00650
00651
00652 abund.SolarSave[ipIRON] = 2.82e-5f;
00653 abund.SolarSave[ipCOBALT] = 8.32e-8f;
00654 abund.SolarSave[ipNICKEL] = 1.78e-6f;
00655 abund.SolarSave[ipCOPPER] = 1.62e-8f;
00656 abund.SolarSave[ipZINC] = 3.98e-8f;
00657
00658
00659
00660 abund.OldSolar84[ipHYDROGEN] = 1.0;
00661 abund.OldSolar84[ipHELIUM] = 0.100;
00662 abund.OldSolar84[ipLITHIUM] = 2.04e-9;
00663 abund.OldSolar84[ipBERYLLIUM] = 2.63e-11;
00664 abund.OldSolar84[ipBORON] = 7.59e-10;
00665 abund.OldSolar84[ipCARBON] = 3.55e-4;
00666 abund.OldSolar84[ipNITROGEN] = 9.33e-5;
00667 abund.OldSolar84[ipOXYGEN] = 7.41e-4;
00668 abund.OldSolar84[ipFLUORINE] = 3.02e-8;
00669 abund.OldSolar84[ipNEON] = 1.17e-4;
00670 abund.OldSolar84[ipSODIUM] = 2.06e-6;
00671 abund.OldSolar84[ipMAGNESIUM] = 3.80e-5;
00672 abund.OldSolar84[ipALUMINIUM] = 2.95e-6;
00673 abund.OldSolar84[ipSILICON] = 3.55e-5;
00674 abund.OldSolar84[ipPHOSPHORUS] = 3.73e-7;
00675 abund.OldSolar84[ipSULPHUR] = 1.62e-5;
00676 abund.OldSolar84[ipCHLORINE] = 1.88e-7;
00677 abund.OldSolar84[ipARGON] = 3.98e-6;
00678 abund.OldSolar84[ipPOTASSIUM] = 1.35e-7;
00679 abund.OldSolar84[ipCALCIUM] = 2.29e-6;
00680 abund.OldSolar84[ipSCANDIUM] = 1.58e-9;
00681 abund.OldSolar84[ipTITANIUM] = 1.10e-7;
00682 abund.OldSolar84[ipVANADIUM] = 1.05e-8;
00683 abund.OldSolar84[ipCHROMIUM] = 4.84e-7;
00684 abund.OldSolar84[ipMANGANESE] = 3.42e-7;
00685 abund.OldSolar84[ipIRON] = 3.24e-5;
00686 abund.OldSolar84[ipCOBALT] = 8.32e-8;
00687 abund.OldSolar84[ipNICKEL] = 1.76e-6;
00688 abund.OldSolar84[ipCOPPER] = 1.87e-8;
00689 abund.OldSolar84[ipZINC] = 4.52e-8;
00690
00691
00692 abund.anova[ipHYDROGEN] = 1.0;
00693 abund.anova[ipHELIUM] = 0.098;
00694 abund.anova[ipLITHIUM] = 2.04e-9;
00695 abund.anova[ipBERYLLIUM] = 2.6e-11;
00696 abund.anova[ipBORON] = 7.60e-9;
00697 abund.anova[ipCARBON] = 9.4e-4;
00698 abund.anova[ipNITROGEN] = 9.8e-3;
00699 abund.anova[ipOXYGEN] = 1.7e-2;
00700 abund.anova[ipFLUORINE] = 3.02e-8;
00701 abund.anova[ipNEON] = 2.03e-3;
00702 abund.anova[ipSODIUM] = 2.06e-6;
00703 abund.anova[ipMAGNESIUM] = 3.80e-5;
00704 abund.anova[ipALUMINIUM] = 2.95e-6;
00705 abund.anova[ipSILICON] = 3.55e-5;
00706 abund.anova[ipPHOSPHORUS] = 3.73e-7;
00707 abund.anova[ipSULPHUR] = 1.62e-5;
00708 abund.anova[ipCHLORINE] = 1.88e-7;
00709 abund.anova[ipARGON] = 3.63e-6;
00710 abund.anova[ipPOTASSIUM] = 1.35e-7;
00711 abund.anova[ipCALCIUM] = 2.29e-6;
00712 abund.anova[ipSCANDIUM] = 1.22e-9;
00713 abund.anova[ipTITANIUM] = 8.60e-8;
00714 abund.anova[ipVANADIUM] = 1.05e-8;
00715 abund.anova[ipCHROMIUM] = 4.84e-7;
00716 abund.anova[ipMANGANESE] = 3.42e-7;
00717 abund.anova[ipIRON] = 4.68e-5;
00718 abund.anova[ipCOBALT] = 2.24e-9;
00719 abund.anova[ipNICKEL] = 1.76e-6;
00720 abund.anova[ipCOPPER] = 1.87e-8;
00721 abund.anova[ipZINC] = 4.52e-8;
00722
00723
00724 abund.aprim[ipHYDROGEN] = 1.0;
00725 abund.aprim[ipHELIUM] = 0.072;
00726 abund.aprim[ipLITHIUM] = 1e-10;
00727 abund.aprim[ipBERYLLIUM] = 1e-16;
00728
00729 for( i=4; i < LIMELM; i++ )
00730 {
00731 abund.aprim[i] = 1e-25;
00732 }
00733
00734
00735
00736 abund.aism[ipHYDROGEN] = 1.;
00737 abund.aism[ipHELIUM] = 0.098;
00738 abund.aism[ipLITHIUM] = 5.4e-11;
00739 abund.aism[ipBERYLLIUM] = 1e-20;
00740 abund.lgElmONaism[ipBERYLLIUM] = false;
00741 abund.aism[ipBORON] = 8.9e-11;
00742 abund.aism[ipCARBON] = 2.51e-4;
00743 abund.aism[ipNITROGEN] = 7.94e-5;
00744
00745
00746
00747 abund.aism[ipOXYGEN] = 3.19e-4;
00748
00749
00750
00751 abund.aism[ipFLUORINE] = 2.0e-8;
00752 abund.aism[ipNEON] = 1.23e-4;
00753 abund.aism[ipSODIUM] = 3.16e-7;
00754 abund.aism[ipMAGNESIUM] = 1.26e-5;
00755 abund.aism[ipALUMINIUM] = 7.94e-8;
00756 abund.aism[ipSILICON] = 3.16e-6;
00757 abund.aism[ipPHOSPHORUS] = 1.6e-7;
00758 abund.aism[ipSULPHUR] = 3.24e-5;
00759 abund.aism[ipCHLORINE] = 1e-7;
00760 abund.aism[ipARGON] = 2.82e-6;
00761 abund.aism[ipPOTASSIUM] = 1.1e-8;
00762 abund.aism[ipCALCIUM] = 4.1e-10;
00763 abund.aism[ipSCANDIUM] = 1e-20;
00764 abund.lgElmONaism[ipSCANDIUM] = false;
00765 abund.aism[ipTITANIUM] = 5.8e-10;
00766 abund.aism[ipVANADIUM] = 1.0e-10;
00767 abund.aism[ipCHROMIUM] = 1.0e-8;
00768 abund.aism[ipMANGANESE] = 2.3e-8;
00769 abund.aism[ipIRON] = 6.31e-7;
00770
00771
00772
00773 abund.aism[ipCOBALT] = 5.9e-9;
00774 abund.aism[ipNICKEL] = 1.82e-8;
00775 abund.aism[ipCOPPER] = 1.5e-9;
00776 abund.aism[ipZINC] = 2.0e-8;
00777
00778
00779
00780
00781 abund.ahii[ipHYDROGEN] = 1.;
00782 abund.ahii[ipHELIUM] = 0.095;
00783 abund.ahii[ipLITHIUM] = 5.4e-11;
00784 abund.ahii[ipBERYLLIUM] = 1e-20;
00785 abund.lgElmONahii[ipBERYLLIUM] = false;
00786 abund.ahii[ipBORON] = 8.9e-11;
00787 abund.ahii[ipCARBON] = 3.e-4;
00788 abund.ahii[ipNITROGEN] = 7.0e-5;
00789 abund.ahii[ipOXYGEN] = 4.0e-4;
00790 abund.ahii[ipFLUORINE] = 1e-20;
00791 abund.lgElmONahii[ipFLUORINE] = false;
00792 abund.ahii[ipNEON] = 6e-5;
00793 abund.ahii[ipSODIUM] = 3e-7;
00794 abund.ahii[ipMAGNESIUM] = 3.e-6;
00795 abund.ahii[ipALUMINIUM] = 2.e-7;
00796 abund.ahii[ipSILICON] = 4.e-6;
00797 abund.ahii[ipPHOSPHORUS] = 1.6e-7;
00798 abund.ahii[ipSULPHUR] = 1.0e-5;
00799 abund.ahii[ipCHLORINE] = 1.e-7;
00800 abund.ahii[ipARGON] = 3.e-6;
00801 abund.ahii[ipPOTASSIUM] = 1.1e-8;
00802 abund.ahii[ipCALCIUM] = 2.e-8;
00803 abund.ahii[ipSCANDIUM] = 1e-20;
00804 abund.lgElmONahii[ipSCANDIUM] = false;
00805 abund.ahii[ipTITANIUM] = 5.8e-10;
00806 abund.ahii[ipVANADIUM] = 1.0e-10;
00807 abund.ahii[ipCHROMIUM] = 1.0e-8;
00808 abund.ahii[ipMANGANESE] = 2.3e-8;
00809 abund.ahii[ipIRON] = 3.0e-6;
00810 abund.ahii[ipCOBALT] = 1e-20;
00811 abund.lgElmONahii[ipCOBALT] = false;
00812 abund.ahii[ipNICKEL] = 1e-7;
00813 abund.ahii[ipCOPPER] = 1.5e-9;
00814 abund.ahii[ipZINC] = 2.0e-8;
00815
00816
00817
00818 abund.apn[ipHYDROGEN] = 1.;
00819 abund.apn[ipHELIUM] = 0.1;
00820 abund.apn[ipLITHIUM] = 1e-20;
00821 abund.lgElmONapn[ipLITHIUM] = false;
00822 abund.apn[ipBERYLLIUM] = 1e-20;
00823 abund.lgElmONapn[ipBERYLLIUM] = false;
00824 abund.apn[ipBORON] = 1e-20;
00825 abund.lgElmONapn[ipBORON] = false;
00826 abund.apn[ipCARBON] = 7.8e-4;
00827 abund.apn[ipNITROGEN] = 1.8e-4;
00828 abund.apn[ipOXYGEN] = 4.4e-4;
00829 abund.apn[ipFLUORINE] = 3e-7;
00830 abund.apn[ipNEON] = 1.1e-4;
00831 abund.apn[ipSODIUM] = 1.9e-6;
00832 abund.apn[ipMAGNESIUM] = 1.6e-6;
00833 abund.apn[ipALUMINIUM] = 2.7e-7;
00834 abund.apn[ipSILICON] = 1e-5;
00835 abund.apn[ipPHOSPHORUS] = 2e-7;
00836 abund.apn[ipSULPHUR] = 1e-5;
00837 abund.apn[ipCHLORINE] = 1.7e-7;
00838 abund.apn[ipARGON] = 2.7e-6;
00839 abund.apn[ipPOTASSIUM] = 1.2e-7;
00840 abund.apn[ipCALCIUM] = 1.2e-8;
00841 abund.apn[ipSCANDIUM] = 1e-20;
00842 abund.lgElmONapn[ipSCANDIUM] = false;
00843 abund.apn[ipTITANIUM] = 1e-20;
00844 abund.lgElmONapn[ipTITANIUM] = false;
00845 abund.apn[ipVANADIUM] = 1e-20;
00846 abund.lgElmONapn[ipVANADIUM] = false;
00847 abund.apn[ipCHROMIUM] = 1e-20;
00848 abund.lgElmONapn[ipCHROMIUM] = false;
00849 abund.apn[ipMANGANESE] = 1e-20;
00850 abund.lgElmONapn[ipMANGANESE] = false;
00851 abund.apn[ipIRON] = 5.0e-7;
00852 abund.apn[ipCOBALT] = 1e-20;
00853 abund.lgElmONapn[ipCOBALT] = false;
00854 abund.apn[ipNICKEL] = 1.8e-8;
00855 abund.apn[ipCOPPER] = 1e-20;
00856 abund.lgElmONapn[ipCOPPER] = false;
00857 abund.apn[ipZINC] = 1e-20;
00858 abund.lgElmONapn[ipZINC] = false;
00859
00860
00861 abund.camern[ipHYDROGEN] = 1.;
00862 abund.camern[ipHELIUM] = .0677;
00863 abund.camern[ipLITHIUM] = 2.2e-9;
00864 abund.camern[ipBERYLLIUM] = 4.5e-11;
00865 abund.camern[ipBORON] = 3.4e-10;
00866 abund.camern[ipCARBON] = 4.22e-4;
00867 abund.camern[ipNITROGEN] = 8.72e-5;
00868 abund.camern[ipOXYGEN] = 6.93e-4;
00869 abund.camern[ipFLUORINE] = 2.9e-8;
00870 abund.camern[ipNEON] = 9.77e-5;
00871 abund.camern[ipSODIUM] = 2.25e-6;
00872 abund.camern[ipMAGNESIUM] = 3.98e-5;
00873 abund.camern[ipALUMINIUM] = 3.20e-6;
00874 abund.camern[ipSILICON] = 3.76e-5;
00875 abund.camern[ipPHOSPHORUS] = 2.4e-7;
00876 abund.camern[ipSULPHUR] = 1.88e-5;
00877 abund.camern[ipCHLORINE] = 1.78e-7;
00878 abund.camern[ipARGON] = 3.99e-6;
00879 abund.camern[ipPOTASSIUM] = 1.3e-7;
00880 abund.camern[ipCALCIUM] = 2.35e-6;
00881 abund.camern[ipSCANDIUM] = 1.16e-9;
00882 abund.camern[ipTITANIUM] = 9.0e-8;
00883 abund.camern[ipVANADIUM] = 9.5e-9;
00884 abund.camern[ipCHROMIUM] = 4.8e-7;
00885 abund.camern[ipMANGANESE] = 3.5e-7;
00886 abund.camern[ipIRON] = 3.38e-5;
00887 abund.camern[ipCOBALT] = 8.27e-8;
00888 abund.camern[ipNICKEL] = 1.80e-6;
00889 abund.camern[ipCOPPER] = 2.0e-8;
00890 abund.camern[ipZINC] = 4.7e-8;
00891
00892
00893
00894 for( i=0; i < LIMELM; i++ )
00895 {
00896 abund.lgAGN[i] = false;
00897 }
00898 abund.lgAGN[ipHYDROGEN] = true;
00899 abund.lgAGN[ipHELIUM] = true;
00900 abund.lgAGN[ipCARBON] = true;
00901 abund.lgAGN[ipNITROGEN] = true;
00902 abund.lgAGN[ipOXYGEN] = true;
00903 abund.lgAGN[ipNEON] = true;
00904 abund.lgAGN[ipMAGNESIUM] = true;
00905 abund.lgAGN[ipSILICON] = true;
00906 abund.lgAGN[ipSULPHUR] = true;
00907 abund.lgAGN[ipARGON] = true;
00908 abund.lgAGN[ipIRON] = true;
00909 return;
00910 }
00911