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