60 static double Fe10cs[6][6][2];
61 static double Fe11cs[6][6][2];
62 static double Fe13cs[6][6][2];
66 double temp_max, temp_min = 4;
68 static bool lgFirstTime =
true;
75 double aFe10[
N] = {10.859,-1.1541,11.593,22.333,-0.4283,7.5663,3.087,1.0937,0.8261,59.678};
76 double bFe10[
N] = {-1.4804,0.4956,-2.1096,-4.1288,0.1929,-1.3525,-0.5531,-0.1748,-0.1286,-11.081};
77 double aFe11[
N] = {5.7269,1.2885,4.0877,0.4571,1.2911,2.2339,0.3621,0.7972,0.2225,1.1021};
78 double bFe11[
N] = {-0.7559,-0.1671,-0.5678,-0.0653,-0.1589,-0.2924,-0.0506,-0.1038,-0.0302,-0.1062};
79 double aFe13[
N] = {2.9102,1.8682,-0.353,0.0622,14.229,-4.3845,0.0375,-6.9222,0.688,-0.0609};
80 double bFe13[
N] = {-0.4158,-0.242,0.1417,0.0023,-2.0643,1.2573,0.0286,2.0919,-0.083,0.1487};
98 Fe10cs[i][j][0] = aFe10[index];
99 Fe10cs[i][j][1] = bFe10[index];
100 Fe11cs[i][j][0] = aFe11[index];
101 Fe11cs[i][j][1] = bFe11[index];
102 Fe13cs[i][j][0] = aFe13[index];
103 Fe13cs[i][j][1] = bFe13[index];
117 else if(init < 1 || init > 4 || final < 2 || final > 5)
128 temp_log =
MAX2(temp_log, temp_min);
129 temp_log =
MIN2(temp_log, temp_max);
130 cs = Fe10cs[init][
final][0] + Fe10cs[init][
final][1]*temp_log;
135 temp_log =
MAX2(temp_log, temp_min);
136 temp_log =
MIN2(temp_log, temp_max);
137 cs = Fe11cs[init][
final][0] + Fe11cs[init][
final][1]*temp_log;
142 temp_log =
MAX2(temp_log, temp_min);
143 temp_log =
MIN2(temp_log, temp_max);
144 cs = Fe13cs[init][
final][0] + Fe13cs[init][
final][1]*temp_log;
162 static double **AulPump,
172 static bool lgFirst=
true;
176 static double gFe2[
NLFE2]={1.,1.,1.,1.,1.,1.};
178 static double ex[
NLFE2]={0.,3.32e4,5.68e4,6.95e4,1.15e5,1.31e5};
182 static double TUsed = 0.;
185 static long int nZUsed=-1,
234 if( nZUsed ==
nzone )
249 fprintf(
ioQQQ,
" CoolIron5 calling FeIILevelPops since ");
253 "temperature changed, old new are %g %g, nCall %li ",
256 else if(
nzone != nZUsed )
259 "new zone, nCall %li ", nCall );
264 "FeII.lgSlow set %li", nCall );
269 " in search phase %li", nCall );
274 "not second nCall %li " , nCall );
279 "temp or cooling changed, new are %g %g nCall %li ",
284 fprintf(
ioQQQ,
"????");
286 fprintf(
ioQQQ,
"\n");
298 " FeIILevelPops called zone %4li te %5f abun %10e c(fe/tot):%6f nCall %li\n",
310 enum{DEBUG_LOC=
false};
314 fprintf(
ioQQQ,
"DEBUG1\t%li\t%.3e\t%.3e\t%.3e\t%.3e\t%.3e\t%.3e\t%.3e\n",
329 fprintf(
ioQQQ,
" FeIILevelPops5 returned cool=%.2e heat=%.2e derivative=%.2e\n ",
343 " CoolIron rescaling FeIILevelPops since small change, CFe2=%.2e CTOT=%.2e\n",
357 fprintf(
ioQQQ,
" CoolIron NOT calling FeIILevelPops\n");
381 fprintf(
ioQQQ,
" Large FeII returns te, cooling, dc=%11.3e%11.3e%11.3e\n",
400 create = (
double *)
MALLOC(
sizeof(
double)*(
NLFE2) );
401 destroy = (
double *)
MALLOC(
sizeof(
double)*(
NLFE2) );
402 depart = (
double *)
MALLOC(
sizeof(
double)*(
NLFE2) );
404 AulPump = ((
double **)
MALLOC((
NLFE2)*
sizeof(
double *)));
405 CollRate = ((
double **)
MALLOC((
NLFE2)*
sizeof(
double *)));
406 AulDest = ((
double **)
MALLOC((
NLFE2)*
sizeof(
double *)));
407 AulEscp = ((
double **)
MALLOC((
NLFE2)*
sizeof(
double *)));
408 col_str = ((
double **)
MALLOC((
NLFE2)*
sizeof(
double *)));
410 for( i=0; i<(
NLFE2); ++i )
412 AulPump[i] = ((
double *)
MALLOC((
NLFE2)*
sizeof(double )));
413 CollRate[i] = ((
double *)
MALLOC((
NLFE2)*
sizeof(double )));
414 AulDest[i] = ((
double *)
MALLOC((
NLFE2)*
sizeof(double )));
415 AulEscp[i] = ((
double *)
MALLOC((
NLFE2)*
sizeof(double )));
416 col_str[i] = ((
double *)
MALLOC((
NLFE2)*
sizeof(double )));
421 for( i=0; i <
NLFE2; i++ )
425 for( j=0; j <
NLFE2; j++ )
454 AulPump[0][5] += PumpLyaFeII;
525 fprintf(
ioQQQ,
" PROBLEM, atom_levelN returned negative population for simple UV FeII.\n");
535 for( i=0; i<
NLFE2; ++i)
555 FeII.
for7 = pops[1]*AulEscp[1][0]*4.65e-12;
654 enum{DEBUG_LOC=
false};
658 fprintf(
ioQQQ,
"DEBUG2\t%.2e\t%.2e\t%.2e\n",
680 static bool lgFe22First=
true;
681 static long int *ipFe22Pump=NULL,
683 double Fe22_pump_rate;
1011 else if( nFe22Pump > 0 )
1013 ipFe22Pump = (
long *)
MALLOC((
unsigned)(nFe22Pump)*
sizeof(
long) );
1023 ipFe22Pump[nFe22Pump] = i;
1033 Fe22_pump_rate = 0.;
1034 for( i=0; i<nFe22Pump; ++i )
1038 fprintf(
ioQQQ,
"DEBUG C %li %.3e %.3e\n",
1057 0.00670 , 0.0614 , 0.0438 , 0.122 , Fe22_pump_rate ,
"Fe22");
1117 telog1 =
MIN2(9.0,telog1);
1118 telog1 =
MAX2(4.0,telog1);
1121 telog2 = telog1*telog1;
1122 telog3 = telog2*telog1;
1132 *csfe14 = a + b*telog1 + c*telog2 + d*telog3;
1140 *csfe14 = a + b*exp(-0.5*((telog1-c)*(telog1-c)/d));
1148 const int NLFE4 = 12;
1153 static bool lgFirst=
true;
1169 static const double Fe4A[NLFE4][NLFE4] = {
1170 {0.,0.,0.,1.e-5,0.,1.368,.89,0.,1.3e-3,1.8e-4,.056,.028},
1171 {0.,0.,2.6e-8,0.,0.,0.,0.,0.,1.7e-7,0.,0.,0.},
1172 {0.,0.,0.,0.,3.5e-7,6.4e-10,0.,0.,6.315e-4,0.,6.7e-7,0.},
1173 {0.,0.,0.,0.,1.1e-6,6.8e-5,8.6e-6,3.4e-10,7.6e-5,1.e-7,5.8e-4,2.8e-4},
1174 {0.,0.,0.,0.,0.,1.5e-5,1.3e-9,0.,7.6e-4,0.,1.1e-6,6.0e-7},
1175 {0.,0.,0.,0.,0.,0.,1.1e-5,1.2e-13,.038,9.9e-7,.022,.018},
1176 {0.,0.,0.,0.,0.,0.,0.,3.7e-5,2.9e-6,.034,3.5e-3,.039},
1177 {0.,0.,0.,0.,0.,0.,0.,0.,0.,.058,3.1e-6,1.4e-3},
1178 {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,1.3e-4,3.1e-14},
1179 {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,1.9e-19,1.0e-5},
1180 {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,1.3e-7},
1181 {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}
1183 static const double Fe4CS[NLFE4][NLFE4] = {
1184 {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.},
1185 {0.98,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.},
1186 {0.8167,3.72,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.},
1187 {0.49,0.0475,0.330,0.,0.,0.,0.,0.,0.,0.,0.,0.},
1188 {0.6533,0.473,2.26,1.64,0.,0.,0.,0.,0.,0.,0.,0.},
1189 {0.45,0.686,0.446,0.106,0.254,0.,0.,0.,0.,0.,0.,0.},
1190 {0.30,0.392,0.152,0.269,0.199,0.605,0.,0.,0.,0.,0.,0.},
1191 {0.15,0.0207,0.190,0.0857,0.166,0.195,0.327,0.,0.,0.,0.,0.},
1192 {0.512,1.23,0.733,0.174,0.398,0.623,0.335,0.102,0.,0.,0.,0.},
1193 {0.128,0.0583,0.185,0.200,0.188,0.0835,0.127,0.0498,0.0787,0.,0.,0.},
1194 {0.384,0.578,0.534,0.363,0.417,0.396,0.210,0.171,0.810,0.101,0.,0.},
1195 {0.256,0.234,0.306,0.318,0.403,0.209,0.195,0.112,0.195,0.458,0.727,0.}
1198 static const double gfe4[NLFE4]={6.,12.,10.,6.,8.,6.,4.,2.,8.,2.,6.,4.};
1205 static const double excit_wn[NLFE4]={0.,32245.5,32292.8,32301.2,32305.7,35253.8,
1206 35333.3,35406.6,38779.4,38896.7,38935.1,38938.2};
1216 AulPump = ((
double **)
MALLOC((NLFE4)*
sizeof(
double *)));
1217 CollRate = ((
double **)
MALLOC((NLFE4)*
sizeof(
double *)));
1218 AulDest = ((
double **)
MALLOC((NLFE4)*
sizeof(
double *)));
1219 AulEscp = ((
double **)
MALLOC((NLFE4)*
sizeof(
double *)));
1220 col_str = ((
double **)
MALLOC((NLFE4)*
sizeof(
double *)));
1221 for( i=0; i<(NLFE4); ++i )
1223 AulPump[i] = ((
double *)
MALLOC((NLFE4)*
sizeof(double )));
1224 CollRate[i] = ((
double *)
MALLOC((NLFE4)*
sizeof(double )));
1225 AulDest[i] = ((
double *)
MALLOC((NLFE4)*
sizeof(double )));
1226 AulEscp[i] = ((
double *)
MALLOC((NLFE4)*
sizeof(double )));
1227 col_str[i] = ((
double *)
MALLOC((NLFE4)*
sizeof(double )));
1250 for( i=0; i < NLFE4; i++ )
1274 for( i=0; i < NLFE4; i++ )
1278 for( j=0; j < NLFE4; j++ )
1289 for( i=0; i < NLFE4; i++ )
1291 for( j=i + 1; j < NLFE4; j++ )
1294 AulEscp[j][i] = Fe4A[i][j];
1296 col_str[j][i] = Fe4CS[j][i];
1329 for( i=0; i<NLFE4; ++i)
1337 fprintf(
ioQQQ,
" fe4levl2 found negative populations\n" );
1348 fe.
fe40401 = (pops[3]*Fe4A[0][3]*(excit_wn[3] - excit_wn[0]) +
1349 pops[4]*Fe4A[0][4]*(excit_wn[4] - excit_wn[0]) )*
T1CM*
BOLTZMANN;
1355 fe.
fe42567 = (pops[10]*Fe4A[0][10]*(excit_wn[10] - excit_wn[0]) +
1356 pops[11]*Fe4A[0][11]*(excit_wn[10] - excit_wn[0]))*
T1CM*
BOLTZMANN;
1375 static bool lgFirst=
true;
1376 static long int ipPump=-1;
1411 static double gfe7[
NLFE7]={5.,7.,9.,5.,1.,3.,5.,9.};
1419 static double excit_wn[
NLFE7]={0. , 1051.5 , 2331.5 , 17475.5 , 20040.3 , 20430.1 , 21278.6 , 28927.3 };
1429 depart = ((
double *)
MALLOC((
NLFE7)*
sizeof(double)));
1430 pops = ((
double *)
MALLOC((
NLFE7)*
sizeof(double)));
1431 destroy = ((
double *)
MALLOC((
NLFE7)*
sizeof(double)));
1432 create = ((
double *)
MALLOC((
NLFE7)*
sizeof(double)));
1436 AulNet = ((
double **)
MALLOC((
NLFE7)*
sizeof(
double *)));
1437 col_str = ((
double **)
MALLOC((
NLFE7)*
sizeof(
double *)));
1438 AulPump = ((
double **)
MALLOC((
NLFE7)*
sizeof(
double *)));
1439 CollRate = ((
double **)
MALLOC((
NLFE7)*
sizeof(
double *)));
1440 AulDest = ((
double **)
MALLOC((
NLFE7)*
sizeof(
double *)));
1441 for( i=0; i<(
NLFE7); ++i )
1445 AulNet[i] = ((
double *)
MALLOC((
NLFE7)*
sizeof(double )));
1446 col_str[i] = ((
double *)
MALLOC((
NLFE7)*
sizeof(double )));
1447 AulPump[i] = ((
double *)
MALLOC((
NLFE7)*
sizeof(double )));
1448 CollRate[i] = ((
double *)
MALLOC((
NLFE7)*
sizeof(double )));
1449 AulDest[i] = ((
double *)
MALLOC((
NLFE7)*
sizeof(double )));
1453 for( i=0; i<
NLFE7; ++i )
1457 for( j=0; j<
NLFE7; ++j )
1461 CollRate[i][j] = 0.;
1474 for( ilo=0; ilo<NLFE7-1; ++ilo )
1477 for( ihi=
MAX2(3,ilo+1); ihi<
NLFE7; ++ihi )
1479 fe.
Fe7_wl[ihi][ilo] = 1e8/(excit_wn[ihi]-excit_wn[ilo]) /
RefIndex( excit_wn[ihi]-excit_wn[ilo] );
1485 AulNet[1][0] = 0.0325;
1486 AulNet[2][0] = 0.167e-8;
1488 AulNet[3][0] = 0.372;
1489 AulNet[4][0] = 0.135;
1490 AulNet[5][0] = 0.502e-1;
1492 AulNet[6][0] = 0.0150;
1493 AulNet[7][0] = 0.959e-3;
1495 AulNet[2][1] = 0.466e-1;
1496 AulNet[3][1] = 0.603;
1497 AulNet[5][1] = 0.762e-1;
1498 AulNet[6][1] = 0.697e-1;
1499 AulNet[7][1] = 0.343;
1501 AulNet[3][2] = 0.139e-2;
1502 AulNet[6][2] = 0.735e-1;
1503 AulNet[7][2] = 0.503;
1505 AulNet[4][3] = 0.472e-6;
1506 AulNet[5][3] = 0.572e-1;
1508 AulNet[6][3] = 0.182;
1509 AulNet[7][3] = 0.414e-2;
1511 AulNet[5][4] = 0.115e-2;
1512 AulNet[6][4] = 0.139e-7;
1514 AulNet[6][5] = 0.743e-2;
1516 AulNet[7][6] = 0.454e-4;
1524 fprintf(
ioQQQ,
"DEBUG fudge call cool_iron\n");
1531 col_str[1][0] = 3.35;
1532 col_str[2][0] = 1.17;
1533 col_str[3][0] = 0.959;
1534 col_str[4][0] = 0.299;
1535 col_str[5][0] = 0.633;
1536 col_str[6][0] = 0.549;
1537 col_str[7][0] = 1.24*scale;
1539 col_str[2][1] = 4.11;
1540 col_str[3][1] = 1.29;
1541 col_str[4][1] = 0.235;
1542 col_str[5][1] = 0.833;
1543 col_str[6][1] = 1.06;
1544 col_str[7][1] = 1.74*scale;
1546 col_str[3][2] = 1.60;
1547 col_str[4][2] = 0.187;
1548 col_str[5][2] = 0.690;
1549 col_str[6][2] = 1.94;
1550 col_str[7][2] = 2.25*scale;
1552 col_str[4][3] = 0.172;
1553 col_str[5][3] = 0.531;
1554 col_str[6][3] = 1.06;
1555 col_str[7][3] = 2.02;
1557 col_str[5][4] = 0.370;
1558 col_str[6][4] = 0.324;
1559 col_str[7][4] = 0.164;
1561 col_str[6][5] = 1.17;
1562 col_str[7][5] = 0.495;
1564 col_str[7][6] = 0.903;
1587 fprintf(
ioQQQ,
"PROBLEM Fe7Lev8 cannot identify the FUV driving line.\n");
1603 for( ilo=0; ilo<
NLFE7-1; ++ilo )
1606 for( ihi=
MAX2(3,ilo+1); ihi<
NLFE7; ++ihi )
1632 for( i=0; i <
NLFE7; i++ )
1652 AulPump[0][4] = FUV_pump;
1653 AulPump[1][4] = FUV_pump;
1654 AulPump[2][4] = FUV_pump;
1655 AulPump[0][5] = FUV_pump;
1656 AulPump[1][5] = FUV_pump;
1657 AulPump[2][5] = FUV_pump;
1658 AulPump[0][6] = FUV_pump;
1659 AulPump[1][6] = FUV_pump;
1660 AulPump[2][6] = FUV_pump;
1725 for( i=0; i<
NLFE7; ++i)
1742 for( ilo=0; ilo<NLFE7-1; ++ilo )
1745 for( ihi=
MAX2(3,ilo+1); ihi<
NLFE7; ++ihi )
1775 fprintf(
ioQQQ,
"PROBLEM Fe7Lev8 found negative populations\n" );
1786 for( ilo=0; ilo<NLFE7-1; ++ilo )
1789 for( ihi=
MAX2(3,ilo+1); ihi<
NLFE7; ++ihi )
1792 fe.
Fe7_emiss[ihi][ilo] = pops[ihi]*AulNet[ihi][ilo]*(excit_wn[ihi] - excit_wn[ilo])*
ERG1CM;
1808 static bool lgFirst=
true;
1825 static double gfe3[
NLFE3]={9.,7.,5.,3.,1.,5.,13.,11.,9.,3.,1.,9.,7.,5.};
1831 static double excit_wn[
NLFE3]={
1832 0.0 , 436.2, 738.9, 932.4, 1027.3,
1833 19404.8, 20051.1, 20300.8, 20481.9, 20688.4,
1834 21208.5, 21462.2, 21699.9, 21857.2 };
1844 depart = ((
double *)
MALLOC((
NLFE3)*
sizeof(double)));
1845 pops = ((
double *)
MALLOC((
NLFE3)*
sizeof(double)));
1846 destroy = ((
double *)
MALLOC((
NLFE3)*
sizeof(double)));
1847 create = ((
double *)
MALLOC((
NLFE3)*
sizeof(double)));
1851 AulNet = ((
double **)
MALLOC((
NLFE3)*
sizeof(
double *)));
1852 col_str = ((
double **)
MALLOC((
NLFE3)*
sizeof(
double *)));
1853 AulPump = ((
double **)
MALLOC((
NLFE3)*
sizeof(
double *)));
1854 CollRate = ((
double **)
MALLOC((
NLFE3)*
sizeof(
double *)));
1855 AulDest = ((
double **)
MALLOC((
NLFE3)*
sizeof(
double *)));
1856 for( i=0; i<(
NLFE3); ++i )
1860 AulNet[i] = ((
double *)
MALLOC((
NLFE3)*
sizeof(double )));
1861 col_str[i] = ((
double *)
MALLOC((
NLFE3)*
sizeof(double )));
1862 AulPump[i] = ((
double *)
MALLOC((
NLFE3)*
sizeof(double )));
1863 CollRate[i] = ((
double *)
MALLOC((
NLFE3)*
sizeof(double )));
1864 AulDest[i] = ((
double *)
MALLOC((
NLFE3)*
sizeof(double )));
1868 for( i=0; i<
NLFE3; ++i )
1872 for( j=0; j<
NLFE3; ++j )
1876 CollRate[i][j] = 0.;
1885 for( ihi=1; ihi<
NLFE3; ++ihi )
1887 for( ilo=0; ilo<ihi; ++ilo )
1889 fe.
Fe3_wl[ihi][ilo] = 1e8/(excit_wn[ihi]-excit_wn[ilo]) /
1890 RefIndex( (excit_wn[ihi]-excit_wn[ilo]) );
1896 AulNet[1][0] = 2.8e-3;
1897 AulNet[7][0] = 4.9e-6;
1898 AulNet[8][0] = 5.7e-3;
1899 AulNet[11][0] = 4.5e-1;
1900 AulNet[12][0] = 4.2e-2;
1902 AulNet[2][1] = 1.8e-3;
1903 AulNet[5][1] = 4.2e-1;
1904 AulNet[8][1] = 1.0e-3;
1905 AulNet[11][1] = 8.4e-2;
1906 AulNet[12][1] = 2.5e-1;
1907 AulNet[13][1] = 2.7e-2;
1909 AulNet[3][2] = 7.0e-4;
1910 AulNet[5][2] = 5.1e-5;
1911 AulNet[9][2] = 5.4e-1;
1912 AulNet[12][2] = 8.5e-2;
1913 AulNet[13][2] = 9.8e-2;
1915 AulNet[4][3] = 1.4e-4;
1916 AulNet[5][3] = 3.9e-2;
1917 AulNet[9][3] = 4.1e-5;
1918 AulNet[10][3] = 7.0e-1;
1919 AulNet[13][3] = 4.7e-2;
1921 AulNet[9][4] = 9.3e-2;
1923 AulNet[9][5] = 4.7e-2;
1924 AulNet[12][5] = 2.5e-6;
1925 AulNet[13][5] = 1.7e-5;
1927 AulNet[7][6] = 2.7e-4;
1929 AulNet[8][7] = 1.2e-4;
1930 AulNet[11][7] = 6.6e-4;
1932 AulNet[11][8] = 1.6e-3;
1933 AulNet[12][8] = 7.8e-4;
1935 AulNet[10][9] = 8.4e-3;
1936 AulNet[13][9] = 2.8e-7;
1938 AulNet[12][11] = 3.0e-4;
1940 AulNet[13][12] = 1.4e-4;
1945 col_str[1][0] = 2.92;
1946 col_str[2][0] = 1.24;
1947 col_str[3][0] = 0.595;
1948 col_str[4][0] = 0.180;
1949 col_str[5][0] = 0.580;
1950 col_str[6][0] = 1.34;
1951 col_str[7][0] = 0.489;
1952 col_str[8][0] = 0.0926;
1953 col_str[9][0] = 0.165;
1954 col_str[10][0] = 0.0213;
1955 col_str[11][0] = 1.07;
1956 col_str[12][0] = 0.435;
1957 col_str[13][0] = 0.157;
1959 col_str[2][1] = 2.06;
1960 col_str[3][1] = 0.799;
1961 col_str[4][1] = 0.225;
1962 col_str[5][1] = 0.335;
1963 col_str[6][1] = 0.555;
1964 col_str[7][1] = 0.609;
1965 col_str[8][1] = 0.367;
1966 col_str[9][1] = 0.195;
1967 col_str[10][1] = 0.0698;
1968 col_str[11][1] = 0.538;
1969 col_str[12][1] = 0.484;
1970 col_str[13][1] = 0.285;
1972 col_str[3][2] = 1.29;
1973 col_str[4][2] = 0.312;
1974 col_str[5][2] = 0.173;
1975 col_str[6][2] = 0.178;
1976 col_str[7][2] = 0.430;
1977 col_str[8][2] = 0.486;
1978 col_str[9][2] = 0.179;
1979 col_str[10][2] = 0.0741;
1980 col_str[11][2] = 0.249;
1981 col_str[12][2] = 0.362;
1982 col_str[13][2] = 0.324;
1984 col_str[4][3] = 0.493;
1985 col_str[5][3] = 0.0767;
1986 col_str[6][3] = 0.0348;
1987 col_str[7][3] = 0.223;
1988 col_str[8][3] = 0.401;
1989 col_str[9][3] = 0.126;
1990 col_str[10][3] = 0.0528;
1991 col_str[11][3] = 0.101;
1992 col_str[12][3] = 0.207;
1993 col_str[13][3] = 0.253;
1995 col_str[5][4] = 0.0211;
1996 col_str[6][4] = 0.00122;
1997 col_str[7][4] = 0.0653;
1998 col_str[8][4] = 0.154;
1999 col_str[9][4] = 0.0453;
2000 col_str[10][4] = 0.0189;
2001 col_str[11][4] = 0.0265;
2002 col_str[12][4] = 0.0654;
2003 col_str[13][4] = 0.0950;
2005 col_str[6][5] = 0.403;
2006 col_str[7][5] = 0.213;
2007 col_str[8][5] = 0.0939;
2008 col_str[9][5] = 1.10;
2009 col_str[10][5] = 0.282;
2010 col_str[11][5] = 0.942;
2011 col_str[12][5] = 0.768;
2012 col_str[13][5] = 0.579;
2014 col_str[7][6] = 2.84;
2015 col_str[8][6] = 0.379;
2016 col_str[9][6] = 0.0876;
2017 col_str[10][6] = 0.00807;
2018 col_str[11][6] = 1.85;
2019 col_str[12][6] = 0.667;
2020 col_str[13][6] = 0.0905;
2022 col_str[8][7] = 3.07;
2023 col_str[9][7] = 0.167;
2024 col_str[10][7] = 0.0526;
2025 col_str[11][7] = 0.814;
2026 col_str[12][7] = 0.837;
2027 col_str[13][7] = 0.626;
2029 col_str[9][8] = 0.181;
2030 col_str[10][8] = 0.0854;
2031 col_str[11][8] = 0.180;
2032 col_str[12][8] = 0.778;
2033 col_str[13][8] = 0.941;
2035 col_str[10][9] = 0.377;
2036 col_str[11][9] = 0.603;
2037 col_str[12][9] = 0.472;
2038 col_str[13][9] = 0.302;
2040 col_str[11][10] = 0.216;
2041 col_str[12][10] = 0.137;
2042 col_str[13][10] = 0.106;
2044 col_str[12][11] = 1.25;
2045 col_str[13][11] = 0.292;
2047 col_str[13][12] = 1.10;
2056 for( ihi=1; ihi<
NLFE3; ++ihi )
2058 for( ilo=0; ilo<ihi; ++ilo )
2066 for( i=0; i <
NLFE3; i++ )
2114 for( i=0; i<
NLFE3; ++i)
2122 fprintf(
ioQQQ,
" Fe3Lev14 found negative populations\n" );
2133 for( ihi=1; ihi<
NLFE3; ++ihi )
2135 for( ilo=0; ilo<ihi; ++ilo )
2151 static bool lgFirst=
true;
2169 static double stat_wght[
NLFE11]={5.,3.,1.,5.,1.};
2175 static double excit_wn[
NLFE11]={
2176 0.0 , 12667.9 , 14312. , 37743.6 , 80814.7 };
2193 AulNet = ((
double **)
MALLOC((
NLFE11)*
sizeof(
double *)));
2194 col_str = ((
double **)
MALLOC((
NLFE11)*
sizeof(
double *)));
2195 AulPump = ((
double **)
MALLOC((
NLFE11)*
sizeof(
double *)));
2196 CollRate = ((
double **)
MALLOC((
NLFE11)*
sizeof(
double *)));
2197 AulDest = ((
double **)
MALLOC((
NLFE11)*
sizeof(
double *)));
2198 for( i=0; i<(
NLFE11); ++i )
2202 AulNet[i] = ((
double *)
MALLOC((
NLFE11)*
sizeof(double )));
2203 col_str[i] = ((
double *)
MALLOC((
NLFE11)*
sizeof(double )));
2204 AulPump[i] = ((
double *)
MALLOC((
NLFE11)*
sizeof(double )));
2205 CollRate[i] = ((
double *)
MALLOC((
NLFE11)*
sizeof(double )));
2206 AulDest[i] = ((
double *)
MALLOC((
NLFE11)*
sizeof(double )));
2210 for( i=0; i<
NLFE11; ++i )
2214 for( j=0; j<
NLFE11; ++j )
2218 CollRate[i][j] = 0.;
2227 for( ihi=1; ihi<
NLFE11; ++ihi )
2229 for( ilo=0; ilo<ihi; ++ilo )
2231 fe.
Fe11_wl[ihi][ilo] = 1e8/(excit_wn[ihi]-excit_wn[ilo]) /
2232 RefIndex( (excit_wn[ihi]-excit_wn[ilo]) );
2238 AulNet[4][1] = 990.;
2240 AulNet[3][0] = 92.3;
2241 AulNet[3][1] = 9.44;
2242 AulNet[3][2] = 1.4e-3;
2243 AulNet[2][0] = 9.9e-3;
2244 AulNet[1][0] = 43.7;
2245 AulNet[2][1] = 0.226;
2255 for( ihi=1; ihi<
NLFE11; ++ihi )
2257 for( ilo=0; ilo<ihi; ++ilo )
2265 for( i=0; i <
NLFE11; i++ )
2274 if( fabs(
phycon.
te / TeUsed - 1. ) > 0.05 )
2279 for( ihi=1; ihi<
NLFE11; ++ihi )
2281 for( ilo=0; ilo<ihi; ++ilo )
2284 ASSERT( col_str[ihi][ilo] > 0. );
2337 fprintf(
ioQQQ,
" Fe11Lev5 found negative populations\n" );
2348 for( ihi=1; ihi<
NLFE11; ++ihi )
2350 for( ilo=0; ilo<ihi; ++ilo )
2367 static bool lgFirst=
true;
2385 static double stat_wght[
NLFE13]={1.,3.,5.,5.,1.};
2389 static double excit_wn[
NLFE13]={
2390 0.0 , 9302.5 , 18561.0 , 48068. , 91508. };
2407 AulNet = ((
double **)
MALLOC((
NLFE13)*
sizeof(
double *)));
2408 col_str = ((
double **)
MALLOC((
NLFE13)*
sizeof(
double *)));
2409 AulPump = ((
double **)
MALLOC((
NLFE13)*
sizeof(
double *)));
2410 CollRate = ((
double **)
MALLOC((
NLFE13)*
sizeof(
double *)));
2411 AulDest = ((
double **)
MALLOC((
NLFE13)*
sizeof(
double *)));
2412 for( i=0; i<(
NLFE13); ++i )
2416 AulNet[i] = ((
double *)
MALLOC((
NLFE13)*
sizeof(double )));
2417 col_str[i] = ((
double *)
MALLOC((
NLFE13)*
sizeof(double )));
2418 AulPump[i] = ((
double *)
MALLOC((
NLFE13)*
sizeof(double )));
2419 CollRate[i] = ((
double *)
MALLOC((
NLFE13)*
sizeof(double )));
2420 AulDest[i] = ((
double *)
MALLOC((
NLFE13)*
sizeof(double )));
2424 for( i=0; i<
NLFE13; ++i )
2428 for( j=0; j<
NLFE13; ++j )
2432 CollRate[i][j] = 0.;
2441 for( ihi=1; ihi<
NLFE13; ++ihi )
2443 for( ilo=0; ilo<ihi; ++ilo )
2445 fe.
Fe13_wl[ihi][ilo] = 1e8/(excit_wn[ihi]-excit_wn[ilo]) /
2446 RefIndex( (excit_wn[ihi]-excit_wn[ilo]) );
2451 AulNet[4][1] = 1010.;
2454 AulNet[3][1] = 45.7;
2455 AulNet[3][2] = 57.6;
2456 AulNet[2][0] = 0.0063;
2457 AulNet[1][0] = 14.0;
2458 AulNet[2][1] = 9.87;
2468 for( ihi=1; ihi<
NLFE13; ++ihi )
2470 for( ilo=0; ilo<ihi; ++ilo )
2478 for( i=0; i <
NLFE13; i++ )
2487 if( fabs(
phycon.
te / TeUsed - 1. ) > 0.05 )
2492 for( ihi=1; ihi<
NLFE13; ++ihi )
2494 for( ilo=0; ilo<ihi; ++ilo )
2497 ASSERT( col_str[ihi][ilo] > 0. );
2554 fprintf(
ioQQQ,
" Fe13Lev5 found negative populations\n" );
2565 for( ihi=1; ihi<
NLFE13; ++ihi )
2567 for( ilo=0; ilo<ihi; ++ilo )