129 fprintf(
ioQQQ,
" PROBLEM atom_level3: insane stat weights g0 :%10.2e%10.2e %10.10s\n",
130 g010, g020, chLab10 );
148 fprintf(
ioQQQ,
" PROBLEM atom_level3: insane stat weights g1 :%10.2e%10.2e %10.10s\n",
166 fprintf(
ioQQQ,
" PROBLEM atom_level3: insane stat weights g2 :%10.2e%10.2e %10.10s\n",
167 g010, g020, chLab10 );
192 fprintf(
ioQQQ,
" PROBLEM atom_level3: insanity at g010 g121 branch \n" );
228 if( AbunxIon <= 1e-30 || c > 60. )
247 t10->
Lo->
Pop = AbunxIon;
248 t20->
Lo->
Pop = AbunxIon;
316 ASSERT( o10 > 0. && o21 > 0. && o20 > 0. );
331 ener10 = ener20 - ener21;
334 bolt01 = bolt02/bolt12;
337 temp01 = temp02 - temp12;
344 ener21 = ener20 - ener10;
347 bolt12 = bolt02/bolt01;
350 temp12 = temp02 - temp01;
357 ener20 = ener21 + ener10;
360 bolt02 = bolt01*bolt12;
363 temp02 = temp01 + temp12;
374 bolt02 = bolt01*bolt12;
381 ASSERT( ener10 > 0. && ener20 > 0. && ener21 > 0. );
384 ASSERT( ener10 < ener20 && ener21 < ener20 );
387 ASSERT( fabs((ener10+ener21)/ener20-1.) < 1e-4 );
390 pump10 = pump01*g0/g1;
392 pump21 = pump12*g1/g2;
394 pump20 = pump02*g0/g2;
400 r10 = c10 + a10 + pump10;
402 r20 = c20 + a20 + pump20;
408 r21 = c21 + a21 + pump21;
410 alpha1 = (double)(AbunxIon)*(r01+r02)/(r10+r01+r02);
411 alpha2 = (double)(AbunxIon)*(r01)/(r10+r12+r01);
412 alpha = alpha1 - alpha2;
416 beta = (r21 - r01)/(r10 + r12 + r01) + (r20 + r01 + r02)/(r10 +
419 if( alpha/
MAX2(alpha1,alpha2) < 1e-11 )
433 if( alpha < 0. || beta < 0. )
435 fprintf(
ioQQQ,
" atom_level3: insane n2 pop alf, bet, p2=%10.2e%10.2e%10.2e %10.10s t=%10.2e\n",
436 alpha, beta, p2, chLab,
phycon.
te );
437 fprintf(
ioQQQ,
" gs are%5.1f%5.1f%5.1f\n", g0, g1,
439 fprintf(
ioQQQ,
" Bolts are%10.2e%10.2e%10.2e\n",
440 bolt01, bolt12, bolt02 );
441 fprintf(
ioQQQ,
" As are%10.2e%10.2e%10.2e\n", a10,
443 fprintf(
ioQQQ,
" Energies are%10.2e%10.2e%10.2e\n",
444 ener10, ener21, ener20 );
445 fprintf(
ioQQQ,
" 2 terms, dif of alpha are%15.6e%15.6e\n",
446 (r01 + r02)/(r10 + r01 + r02), r01/(r10 + r12 + r01) );
451 alpha = (double)(AbunxIon)*(r01+r02) - (
double)(p2)*(r20+r01+r02);
455 if( fabs(alpha)/(
MAX2(AbunxIon*(r01+r02),p2*(r20+r01+r02))) < 1e-9 )
461 beta = r10 + r01 + r02;
478 fprintf(
ioQQQ,
" atom_level3: insane n1 pop alf, bet, p1=%10.2e%10.2e%10.2e %10.10s%5f\n",
479 alpha, beta, p1, chLab, t10->
WLAng );
480 fprintf(
ioQQQ,
" local electron density and temperature were%10.2e%10.2e\n",
487 p0 = AbunxIon - p2 - p1;
493 fprintf(
ioQQQ,
" atom_level3: insane n0 pop p1, 2, abun=%10.2e%10.2e%10.2e \n",
568 heat20 = p2*c20*ener20;
569 cool02 = p0*c02*ener20;
570 heat21 = p2*c21*ener21;
571 cool12 = p1*c12*ener21;
572 heat10 = p1*c10*ener10;
573 cool01 = p0*c01*ener10;
607 if( fabs(cnet01/
MAX2(DBL_MIN,cool01)) < 1e-10 )
618 TotCool = cnet02 + cnet12 + cnet01;
619 TotHeat = hnet02 + hnet12 + hnet01;
672 enum{DEBUG_LOC=
false};
676 fprintf(
ioQQQ,
"atom_level3 nLev3Fail %i\n",