32 STATIC double ritoa(
long li,
long lf,
long nelem,
double k,
double RI2 );
51 d2 =
zJint * sin(theta),
68 double g1=tgamma(1+0.5*vv), g2=tgamma(1-0.5*vv),
69 g3=tgamma(1.5+0.5*vv), g4=tgamma(1.5-0.5*vv);
70 double y1 = 0., y2=0., zp = 1.;
71 for (
long k=0; k<100; ++k)
86 double cosfac=cos(0.5*PI*vv), sinfac=sin(0.5*PI*vv);
87 return y1*cosfac+y2*sinfac;
94 double rz=1./zz, akrz=1., bff=0., bgg=0., bfp=0.;
95 for (
long k=0; k<100; ++k)
97 if (k > 0 && fabs(akrz) > fabs(bfp))
101 akrz *= (4*vv*vv-(4*k+1)*(4*k+1))/(8*(2*k+1)*zz);
103 akrz *= -(4*vv*vv-(4*k+3)*(4*k+3))/(8*(2*k+2)*zz);
105 double omega = zz-(2*vv+1)*PI/4;
106 return sqrt(2/PI*rz)*(cos(omega)*bff-sin(omega)*bgg);
110 double ff = 0., gg=0., fk=1., gk=1., rz=1./zz, rzsq = rz*rz,
112 for (
long k=0; k<100; ++k)
116 fk *= (vv*vv-(2*k-1)*(2*k-1))*rzsq;
117 gk *= (vv*vv-4*k*k)*rzsq;
125 return bessjnu(vv,zz)+sin(PI*vv)/(PI*zz)*(ff-(vv*rz)*gg);
129 long int rep = 0, ddiv, divsor;
138 if( (fabs(vv)) - (
int)(fabs(vv)) > 0.5 )
139 ddiv = (int)(fabs(vv)) + 1;
141 ddiv = (int)(fabs(vv));
143 divsor = ((ddiv == 0) ? 1 : ddiv);
147 for( rep = 0; rep < divsor; rep++ )
150 rl = (((double) rep)/((double) divsor)),
151 ru = (((
double) (rep+1))/((double) divsor)),
216 double nstar,
long int l,
217 double npstar,
long int lp,
221 double n_c = ((2.0 * nstar * npstar ) / ( nstar + npstar ));
223 double D_n = (nstar - npstar);
224 double D_l = (double) ( l - lp );
225 double lg = (double) ( (lp > l) ? lp : l);
229 double f = ( 1.0 - g );
230 double e = (( f >= 0.0) ? sqrt( f ) : 0.0 );
232 double x = (e * D_n);
233 double z = (-1.0 * x);
234 double v1 = (D_n + 1.0);
235 double v2 = (D_n - 1.0);
237 double d1,d2,d7,d8,d9,d34,d56,d6_1;
265 d2 = (n_c * n_c)/(2.0 * D_n);
273 double vv = v2, zz = z, y =
AngerJ(vv,zz);
275 double vp = (zz > 0.) ? vv : -vv;
276 double ya = fabs(zz) < fabs(vv) ? 0. :
AngerJ_asymp(vp,fabs(zz));
277 printf(
"ANGER %15.8g %15.8g: %15.8g %15.8g (%15.8g) asymp %15.8g\n",
278 zz,vv,yt,y,fabs(yt-y)/(1e-37+fabs(yt)),ya);
281 d34 = (1.0 - ((D_l * lg)/n_c)) *
AngerJ( v1, z );
283 d56 = (1.0 + ((D_l * lg)/n_c)) *
AngerJ( v2, z );
287 d7 = (2./PI) * sin( d6_1 ) * (1.0 - e);
289 d8 = d1 * d2 * ( (d34) - (d56) + d7 );
296 ASSERT( (l == lp + 1) || ( l == lp - 1) );
319 double ForbiddenHe[5] = { 1.272E-4, 1E-20, 1E-20, 177.58, 0.327 };
321 A = ForbiddenHe[ipHi - 1];
336 A = (3.9061E-7) * pow( (
double)nelem+1., 10.419 );
349 A = ( 11.431 * pow((
double)nelem, 9.091) );
354 A = ( 383.42 * pow((
double)nelem, 7.8901) );
362 A = ( 0.11012 * pow((
double)nelem, 7.6954) );
381 else if( nelem>
ipHELIUM &&
L_(ipHi)==1 &&
S_(ipHi)==3 &&
382 L_(ipLo)==0 &&
S_(ipLo)==1 &&
N_(ipLo) <
N_(ipHi) )
384 A = 8.0E-3 * exp(9.283/sqrt((
double)
N_(ipLo))) * pow((
double)nelem,9.091) /
385 pow((
double)
N_(ipHi),2.877);
390 else if( nelem >
ipHELIUM &&
L_(ipHi)==0 &&
S_(ipHi)==1 &&
391 L_(ipLo)==1 &&
S_(ipLo)==3 &&
N_(ipLo) <
N_(ipHi) )
393 A = 2.416 * exp(-0.256*
N_(ipLo)) * pow((
double)nelem,9.159) / pow((
double)
N_(ipHi),3.111);
399 A *= (2.*(ipLo-3)+1.0)/3.0;
406 double As_3TripS_to_2TripS[9] = {
407 7.86E-9, 4.59E-6, 1.90E-4, 2.76E-3, 2.25E-2,
408 1.27E-1, 5.56E-1, 2.01E0, 6.26E0 };
414 A = As_3TripS_to_2TripS[nelem-1];
423 A= 7.22E-9*pow((
double)nelem, 9.33);
441 A= 0.1834*pow((
double)nelem, 6.5735);
446 else if( nelem==
ipHELIUM && ipHi==4 && ipLo==3 )
449 fixit(
"find a transition probability for this 2^3P0 - 2^3P1 transition.");
460 else if( nelem==
ipHELIUM && ipHi==5 && ipLo==4 )
462 fixit(
"find a transition probability for this 2^3P1 - 2^3P2 transition.");
475 A = 44.326 * (1./3.) + 0.1146547 * (5./9.);
482 A = 1.459495 * (1./3.) + 3.6558e-5 * (5./9.);
489 A = 2.2297e-3 * (1./3.);
507 else if( ( ipLo==0 &&
L_(ipHi)==2 &&
S_(ipHi)==1 ) ||
510 (
N_(ipLo)==2 &&
L_(ipLo)==1 &&
S_(ipLo)==3 &&
N_(ipHi)>=3 &&
L_(ipHi)==1 &&
S_(ipHi)==3 ) ||
515 static const double f_params[5][4][3] = {
517 {9.360591E-007, -3.1937E-006, 3.5186E-006},
518 {4.631435E-007, -1.4973E-006, 1.4848E-006},
519 {2.493912E-007, -7.8658E-007, 7.3994E-007},
520 {1.476742E-007, -4.5953E-007, 4.1932E-007}},
522 {1.646733E-006, -2.0028E-006, -1.3552E-006},
523 {9.120593E-008, 3.1301E-007, -3.2190E-007},
524 {1.360965E-008, 1.1467E-007, 8.6977E-008},
525 {3.199421E-009, 4.5485E-008, 1.1016E-007}},
527 {1.646733E-006, -2.9720E-006, 1.5367E-006},
528 {9.120593E-008, -3.9037E-008, 3.9156E-008},
529 {1.360965E-008, 1.4671E-008, 1.5626E-008},
530 {3.199421E-009, 8.9806E-009, 1.2436E-008}},
532 {1.543812E-007, -2.8220E-007, 3.0261E-008},
533 {3.648237E-008, -6.6824E-008, 4.5879E-009},
534 {1.488556E-008, -2.7304E-008, 1.6628E-009},
535 {7.678610E-009, -1.4112E-008, 6.8453E-010}},
537 {1.543812E-007, -2.8546E-007, 4.6605E-008},
538 {3.648237E-008, -6.8422E-008, 1.7038E-008},
539 {1.488556E-008, -2.8170E-008, 8.5012E-009},
540 {7.678610E-009, -1.4578E-008, 4.6686E-009}}
553 long index_hi =
MIN2(
N_(ipHi), 6 ) - 3;
554 double f_lu =
POW2(nelem+1) * (
555 f_params[index_lo][index_hi][0] +
556 f_params[index_lo][index_hi][1]/(nelem+1) +
557 f_params[index_lo][index_hi][2]/
POW2(nelem+1) );
561 f_lu *=
pow3( 6. /
N_(ipHi) );
567 A =
eina( gLo * f_lu, eWN, gHi );
586 long nelem ,
double Enerwn ,
588 double Eff_nupper,
long lHi,
long sHi,
long jHi,
590 double Eff_nlower,
long lLo,
long sLo,
long jLo,
596 long nHi, nLo, ipHi, ipLo;
604 nHi = (int)(Eff_nupper + 0.4);
605 nLo = (int)(Eff_nlower + 0.4);
608 ASSERT( fabs(Eff_nupper-(
double)nHi) < 0.4 );
609 ASSERT( fabs(Eff_nlower-(
double)nLo) < 0.4 );
612 if( (nHi==2) && (lHi==1) && (sHi==3) )
614 ASSERT( (jHi>=0) && (jHi<=2) );
619 if( (nLo==2) && (lLo==1) && (sLo==3) )
621 ASSERT( (jLo>=0) && (jLo<=2) );
639 if( (sHi == sLo) && (abs((
int)(lHi - lLo)) == 1) )
665 if( (nLo==2) && (lLo==1) && (sLo==3) )
667 ASSERT( (jLo>=0) && (jLo<=2) );
668 ipLoTemp -= (2 - jLo);
670 ASSERT( ipLoTemp < ipHiTemp );
685 ASSERT( (lHi == 1) && (sHi == 1) );
688 Aul = (1.59208e10) /
pow3(Eff_nupper);
696 else if( lHi>=2 && lLo>=2 && nHi>nLo )
709 else if( nHi>10 && nLo<=5 && lHi<=2 && lLo<=2 )
712 double emisOscStr, x, a, b, c;
713 static const double extrapol_Params[2][4][4][3] = {
717 { 0.8267396 , 1.4837624 , -0.4615955 },
718 { 1.2738405 , 1.5841806 , -0.3022984 },
719 { 1.6128996 , 1.6842538 , -0.2393057 },
720 { 1.8855491 , 1.7709125 , -0.2115213 }},
722 { -1.4293664 , 2.3294080 , -0.0890470 },
723 { -0.3608082 , 2.3337636 , -0.0712380 },
724 { 0.3027974 , 2.3326252 , -0.0579008 },
725 { 0.7841193 , 2.3320138 , -0.0497094 }},
727 { 1.1341403 , 3.1702435 , -0.2085843 },
728 { 1.7915926 , 2.4942946 , -0.2266493 },
729 { 2.1979400 , 2.2785377 , -0.1518743 },
730 { 2.5018229 , 2.1925720 , -0.1081966 }},
732 { 0.0000000 , 0.0000000 , 0.0000000 },
733 { -2.6737396 , 2.9379143 , -0.3805367 },
734 { -1.4380124 , 2.7756396 , -0.2754625 },
735 { -0.6630196 , 2.6887253 , -0.2216493 }},
740 { 0.3075287 , 0.9087130 , -1.0387207 },
741 { 0.687069 , 1.1485864 , -0.6627317 },
742 { 0.9776064 , 1.3382024 , -0.5331906 },
743 { 1.2107725 , 1.4943721 , -0.4779232 }},
745 { -1.3659605 , 2.3262253 , -0.0306439 },
746 { -0.2899490 , 2.3279391 , -0.0298695 },
747 { 0.3678878 , 2.3266603 , -0.0240021 },
748 { 0.8427457 , 2.3249540 , -0.0194091 }},
750 { 1.3108281 , 2.8446367 , -0.1649923 },
751 { 1.8437692 , 2.2399326 , -0.2583398 },
752 { 2.1820792 , 2.0693762 , -0.1864091 },
753 { 2.4414052 , 2.0168255 , -0.1426083 }},
755 { 0.0000000 , 0.0000000 , 0.0000000 },
756 { -1.9219877 , 2.7689624 , -0.2536072 },
757 { -0.7818065 , 2.6595150 , -0.1895313 },
758 { -0.0665624 , 2.5955623 , -0.1522616 }},
766 else if( lLo==1 && lHi==0 )
770 else if( lLo==1 && lHi==2 )
780 ASSERT( (
int)((sHi-1)/2) == 0 || (
int)((sHi-1)/2) == 1 );
781 a = extrapol_Params[(int)((sHi-1)/2)][paramSet][nLo-2][0];
782 b = extrapol_Params[(int)((sHi-1)/2)][paramSet][nLo-2][1];
783 c = extrapol_Params[(int)((sHi-1)/2)][paramSet][nLo-2][2];
785 x = log(
iso_sp[
ipHE_LIKE][nelem].fb[ipLo].xIsoLevNIonRyd*RYD_INF/Enerwn );
787 emisOscStr = exp(a+b*x+c*x*x)/
pow3(Eff_nupper)*
788 (2.*lLo+1)/(2.*lHi+1);
790 Aul = TRANS_PROB_CONST*Enerwn*Enerwn*emisOscStr;
792 if( nLo==2 && lLo==1 && sLo==3 )
795 Aul *= (2.*jLo+1.0)/9.0;
811 if( nLo==2 && lLo==1 && sLo==3 )
814 Aul *= (2.*jLo+1.0)/9.0;
846 if( (nLo==2) && (lLo==1) && (sLo==3) )
848 ASSERT( (jLo>=0) && (jLo<=2) );
849 ipLoTemp -= (2 - jLo);
851 ASSERT( ipLoTemp < ipHiTemp );
864 if( nLo==nHi && lHi<=2 && lLo<=2 )
868 if( nLo==2 && lLo==0 && sLo==3 )
870 ASSERT( nHi==2 && lHi==1 && sHi==3 );
874 Aul = 3.31E7 + 1.13E6 * pow((
double)nelem+1.,1.76);
876 Aul = 2.73E7 + 1.31E6 * pow((
double)nelem+1.,1.76);
878 Aul = 3.68E7 + 1.04E7 * exp(((
double)nelem+1.)/5.29);
881 fprintf(
ioQQQ,
" PROBLEM Impossible value for jHi in he_1trans.\n");
887 else if( ( nLo==2 && lLo==0 && sLo==1 ) && ( nHi==2 && lHi==1 && sHi==1 ) )
889 Aul = 5.53E6 * exp( 0.171*(nelem+1.) );
898 if( (lHi == 1) && (sHi == 3) && (lLo == 0) && (sLo == 3))
900 Aul = 0.4 * 3.85E8 * pow((
double)nelem,1.6)/pow((
double)nHi,5.328);
903 else if( (lHi == 1) && (sHi == 1) && (lLo == 2) && (sLo == 1))
905 Aul = 1.95E4 * pow((
double)nelem,1.6) / pow((
double)nHi, 4.269);
908 else if( (lHi == 1) && (sHi == 1) && (lLo == 0) )
910 Aul = 6.646E7 *
powpq((
double)nelem,3,2) / pow((
double)nHi, 5.077);
914 ASSERT( (lHi == 2) && (sHi == 3) && (lLo == 1) );
915 Aul = 3.9E6 * pow((
double)nelem,1.6) / pow((
double)nHi, 4.9);
916 if( (lHi >2) || (lLo > 2) )
926 else if( (nHi > nLo) && ((lHi > 2) || (lLo > 2)) )
936 else if( ( nLo==1 ) || ( nLo==2 && lLo==0 ) ||
937 ( nLo==3 && lLo==0 && sLo==3 ) ||
938 ( nLo==4 && lLo==0 && sLo==3 ) )
943 ASSERT( (lHi == 1) && (sHi == 1) );
950 Aul = 1.375E10 * pow((
double)nelem, 3.9) / pow((
double)nHi,3.1);
954 else if( nLo==2 && lLo==0 && sLo==1 )
956 ASSERT( (lHi == 1) && (sHi == 1) );
959 Aul = 5.0e8 *
pow4((
double)nelem) / pow((
double)nHi, 2.889);
965 ASSERT( (lLo==0) && (sLo==3) );
966 ASSERT( (lHi==1) && (sHi==3) );
970 Aul = 1.5 * 3.405E8 *
pow4((
double)nelem) / pow((
double)nHi, 2.883);
972 Aul = 2.5 * 4.613E7 *
pow4((
double)nelem) / pow((
double)nHi, 2.672);
974 Aul = 3.0 * 1.436E7 *
pow4((
double)nelem) / pow((
double)nHi, 2.617);
984 RI2 =
scqdri(Eff_nupper,lHi,Eff_nlower,lLo,(
double)(nelem));
986 Aul =
ritoa(lHi,lLo,nelem,Enerwn,RI2);
992 Aul *= (2.*jLo+1.0)/9.0;
1011 ASSERT( (sHi != sLo) || (abs((
int)(lHi - lLo)) != 1) );
1023 fprintf(
ioQQQ,
" he_1trans hit negative energy, nelem=%li, val was %f \n", nelem ,Enerwn );
1031 DEBUG_ENTRY(
"helike_transprob_collapsed_to_collapsed()" );
1037 for(
long lLo=0; lLo < nLo; ++lLo )
1041 Aul += Aul_sing + Aul_trip;
1049 DEBUG_ENTRY(
"helike_transprob_collapsed_to_resolved()" );
1060 if( nLo==2 && lLo==1 && sLo==3 )
1062 ASSERT( jLo>=0 && jLo<=2 );
1063 ipLoRes -= (2 - jLo);
1070 n_eff_hi, lLo+1, sLo, -1, n_eff_lo, lLo, sLo, jLo,
1075 Aul *= (2.*(lLo+1.)+1.) * sLo / (4.*(double)nHi*(
double)nHi);
1081 n_eff_hi, lLo-1, sLo, -1, n_eff_lo, lLo, sLo, jLo,
1087 Aul += Aul1*(2.*(lLo-1.)+1.) * sLo / (4.*(double)nHi*(
double)nHi);
1090 sp->
CachedAs[ nHi-nResMax-1 ][ ipLoRes ][1] = 0.f;
1106 long int nHi, lHi, sHi, nLo, lLo, sLo, ipHiTrip, ipLoTrip;
1107 double Ass, Att, Ast, Ats;
1108 double SinHi, SinLo, CosHi, CosLo;
1109 double HiMixingAngle, LoMixingAngle , error;
1110 double Kss, Ktt, Kts, Kst, fss, ftt, fssNew, fttNew, ftsNew, fstNew, temp;
1121 if( ( sHi == 3 || sLo == 3 ) ||
1122 ( abs(lHi - lLo) != 1 ) ||
1124 ( lHi <= 1 || lLo <= 1 ) ||
1125 ( nHi == nLo && lHi == 1 && lLo == 2 ) ||
1126 ( nHi > nLo && lHi != 1 && lLo != 1 ) )
1139 HiMixingAngle = 0.01;
1143 HiMixingAngle = 0.5;
1147 HiMixingAngle = PI/4.;
1152 LoMixingAngle = 0.01;
1156 LoMixingAngle = 0.5;
1160 LoMixingAngle = PI/4.;
1164 ASSERT( ipHiTrip > ipLoTrip );
1165 ASSERT( ipHiTrip > ipLoSing );
1166 ASSERT( ipHiSing > ipLoTrip );
1167 ASSERT( ipHiSing > ipLoSing );
1169 SinHi = sin( HiMixingAngle );
1170 SinLo = sin( LoMixingAngle );
1171 CosHi = cos( HiMixingAngle );
1172 CosLo = cos( LoMixingAngle );
1185 temp = sqrt(fss/Kss)*CosHi*CosLo + sqrt(ftt/Ktt)*SinHi*SinLo;
1186 fssNew = Kss*
POW2( temp );
1187 temp = sqrt(fss/Kss)*SinHi*SinLo + sqrt(ftt/Ktt)*CosHi*CosLo;
1188 fttNew = Ktt*
POW2( temp );
1189 temp = sqrt(fss/Kss)*CosHi*SinLo - sqrt(ftt/Ktt)*SinHi*CosLo;
1190 fstNew = Kst*
POW2( temp );
1191 temp = sqrt(fss/Kss)*SinHi*CosLo - sqrt(ftt/Ktt)*CosHi*SinLo;
1192 ftsNew = Kts*
POW2( temp );
1206 error = fabs( (
iso_sp[
ipHE_LIKE][nelem].trans(ipHiSing,ipLoSing).Emis().Aul()+
1208 (Ass+Ast+Ats+Att) - 1.f );
1212 fprintf(
ioQQQ,
"FSM error: %e\t Element: %ld\t States: LS %li HS %li LT %li HT %li\t New values: Ass %e Att %e Ast %e Ats %e\n", error,
1213 nelem, ipLoSing, ipHiSing, ipLoTrip, ipHiTrip, Ass, Att, Ast, Ats );
1251 STATIC double ritoa(
long li,
long lf,
long nelem,
double k,
double RI2)
1262 double fmean,mu,EinsteinA,w,RI2_cm;
1266 mu = ELECTRON_MASS/(1+ELECTRON_MASS/(
dense.
AtomicWeight[nelem]*ATOMIC_MASS_UNIT));
1268 w = 2. * PI * k * SPEEDLIGHT;
1270 RI2_cm = RI2 * BOHR_RADIUS_CM * BOHR_RADIUS_CM;
1274 fmean = 2.0*mu*w*lg*RI2_cm/((3.0*H_BAR) * (2.0*li+1.0));
1276 EinsteinA = TRANS_PROB_CONST*k*k*fmean;
1286 double Enerwn, n_eff_hi, n_eff_lo;
1295 if( ipHi >=
iso_sp[ipISO][nelem].numLevels_max-
iso_sp[ipISO][nelem].nCollapsed_max )
1297 if( ipLo >=
iso_sp[ipISO][nelem].numLevels_max-
iso_sp[ipISO][nelem].nCollapsed_max )
1318 Aul =
he_1trans( nelem, -1.*Enerwn, n_eff_lo,
1319 L_(ipLo),
S_(ipLo), ipLo-3, n_eff_hi,
L_(ipHi),
S_(ipHi), ipHi-3, &error1, &error2);
1323 Aul =
he_1trans( nelem, Enerwn, n_eff_hi,
1324 L_(ipHi),
S_(ipHi), ipHi-3, n_eff_lo,
L_(ipLo),
S_(ipLo), ipLo-3, &error1, &error2);
1342 long nelem, ipLo, ipHi, i, i1, i2, i3;
1362 fprintf(
ioQQQ,
" HelikeTransProbSetup opening he_transprob.dat:");
1364 ioDATA =
open_data(
"he_transprob.dat",
"r" );
1367 if(
read_whole_line( chLine , (
int)
sizeof(chLine) , ioDATA ) == NULL )
1369 fprintf(
ioQQQ,
" HelikeTransProbSetup could not read first line of he_transprob.dat.\n");
1373 i1 = (long)
FFmtRead(chLine,&i,
sizeof(chLine),&lgEOL);
1374 i2 = (long)
FFmtRead(chLine,&i,
sizeof(chLine),&lgEOL);
1378 " HelikeTransProbSetup: the version of he_transprob.dat is not the current version.\n" );
1380 " HelikeTransProbSetup: I expected to find the number %i %i and got %li %li instead.\n" ,
1382 fprintf(
ioQQQ,
"Here is the line image:\n==%s==\n", chLine );
1403 if(
read_whole_line( chLine , (
int)
sizeof(chLine) , ioDATA ) == NULL )
1406 while( chLine[0]==
'#' )
1408 if(
read_whole_line( chLine , (
int)
sizeof(chLine) , ioDATA ) == NULL )
1413 i1 = (long)
FFmtRead(chLine,&i3,
sizeof(chLine),&lgEOL);
1414 i2 = (long)
FFmtRead(chLine,&i3,
sizeof(chLine),&lgEOL);
1416 if( i1<0 || i2<=i1 )
1418 fprintf(
ioQQQ,
" HelikeTransProbSetup detected insanity in he_transprob.dat.\n");
1425 for( i=0; i<1; ++i )
1427 if( (chTemp =
strchr_s( chTemp,
'\t' )) == NULL )
1429 fprintf(
ioQQQ,
" HelikeTransProbSetup could not init he_transprob\n" );
1438 if( (chTemp =
strchr_s( chTemp,
'\t' )) == NULL )
1440 fprintf(
ioQQQ,
" HelikeTransProbSetup could not scan he_transprob\n" );
1445 sscanf( chTemp ,
"%le" , &
TransProbs[nelem][i2][i1] );
1450 fprintf(
ioQQQ,
" HelikeTransProbSetup detected insanity in he_transprob.dat.\n");
1457 if(
read_whole_line( chLine , (
int)
sizeof(chLine) , ioDATA ) == NULL )
1459 fprintf(
ioQQQ,
" HelikeTransProbSetup could not read last line of he_transprob.dat.\n");
1463 i1 = (long)
FFmtRead(chLine,&i,
sizeof(chLine),&lgEOL);
1464 i2 = (long)
FFmtRead(chLine,&i,
sizeof(chLine),&lgEOL);
1468 " HelikeTransProbSetup: the version of he_transprob.dat is not the current version.\n" );
1470 " HelikeTransProbSetup: I expected to find the number %i %i and got %li %li instead.\n" ,
1472 fprintf(
ioQQQ,
"Here is the line image:\n==%s==\n", chLine );
STATIC double ForbiddenAuls(long ipHi, long ipLo, long nelem)
STATIC double Jint(double theta)
FILE * open_data(const char *fname, const char *mode, access_scheme scheme)
STATIC double bessjnu(double vv, double zz)
NORETURN void TotalInsanity(void)
multi_arr< realnum, 3 > CachedAs
double eina(double gf, double enercm, double gup)
STATIC double helike_transprob_collapsed_to_resolved(long nelem, long nHi, long nLo, long lLo, long sLo, long jLo, double Enerwn)
void iso_put_error(long ipISO, long nelem, long ipHi, long ipLo, long whichData, realnum errorOpt, realnum errorPess)
STATIC double AngerJ(double vv, double zz)
multi_arr< long, 3 > IndexIfAllResolved
t_iso_sp iso_sp[NISO][LIMELM]
double he_1trans(long nelem, double Enerwn, double Eff_nupper, long lHi, long sHi, long jHi, double Eff_nlower, long lLo, long sLo, long jLo, realnum *error1, realnum *error2)
long int n_HighestResolved_max
realnum & EnergyWN() const
double helike_quantum_defect(long nelem, long n, long lqn, long S, long j)
EmissionList::reference Emis() const
STATIC double scqdri(double nstar, long int l, double npstar, long int lp, double iz)
qList::iterator Hi() const
realnum helike_transprob(long nelem, long ipHi, long ipLo)
const char * strchr_s(const char *s, int c)
multi_arr< long, 3 > QuantumNumbers2Index
TransitionProxy trans(const long ipHi, const long ipLo)
STATIC double helike_transprob_collapsed_to_collapsed(long nelem, long nHi, long nLo, double Enerwn)
realnum AtomicWeight[LIMELM]
qList::iterator Lo() const
void DoFSMixing(long nelem, long ipLoSing, long ipHiSing)
double qg32(double, double, double(*)(double))
#define DEBUG_ENTRY(funcname)
double powpq(double x, int p, int q)
void iso_setRedisFun(long ipISO, long nelem, long ipLo, long ipHi)
STATIC double AngerJ_mac(double vv, double zz)
int fprintf(const Output &stream, const char *format,...)
STATIC double ritoa(long li, long lf, long nelem, double k, double RI2)
char * read_whole_line(char *chLine, int nChar, FILE *ioIN)
void HelikeTransProbSetup(void)
void iso_setOpacity(long ipISO, long nelem, long ipLo, long ipHi)
double H_Einstein_A(long int n, long int l, long int np, long int lp, long int iz)
STATIC double AngerJ_asymp(double vv, double zz)
NORETURN void BadRead(void)
void AddLine2Stack() const
double FFmtRead(const char *chCard, long int *ipnt, long int last, bool *lgEOL)
static double *** TransProbs