/*SumCTHeat sum net heating due to charge transfer */ /*HCTIon H charge transfer ionization*/ /*HCTRecom H charge transfer recombination */ #include "cddefines.h" #include "charexc.h" #include "h.h" #include "ionfracs.h" #include "heat.h" #include "sexp.h" #include "phycon.h" #include "hctmin.h" #include "trace.h" #include "hchargtran.h" /* prototype for block data that is at end of this file */ void MakeHCTData(void); /* the structures for storing the charge transfer data, these are filled in * at the end of this file, in what used to be a block data */ static float CTIonData[LIMELM][4][8]; static float CTRecombData[LIMELM][4][7]; /* this will be flag for whether or not charge transfer data * have been initialized */ static int lgCTDataDefined = FALSE; /*================================================================================* *================================================================================*/ double SumCTHeat(void) { long int ion, nelem; float SumCTHeat_v; # ifdef DEBUG_FUN fputs( "<+>SumCTHeat()\n", debug_fp ); # endif /* second dimension is ionization stage, * 1=+1 for parent, etc * third dimension is atomic weight of atom */ SumCTHeat_v = 0.f; for( nelem=0; nelem < LIMELM; nelem++ ) { /* first group have exact numbers */ for( ion=0; ion < 4; ion++ ) { SumCTHeat_v += CharExc.HCharExcIon[nelem][ion]*h.hii* xIonFracs[ion+1][nelem]*CTIonData[nelem][ion][7] + CharExc.HCharExcRec[nelem][ion]*h.hi*xIonFracs[ion+2][nelem]* CTRecombData[nelem][ion][6]; } /* following do not have exact energies, so use 2.86*(Z-1) */ for( ion=4; ion < LIMELM; ion++ ) { SumCTHeat_v += (float)(CharExc.HCharExcRec[nelem][ion]*h.hi* xIonFracs[ion+2][nelem]*2.86*ion); } } /* convert from eV to ergs, HCharHeatOn usually 1, set to 0 with no CTHeat */ SumCTHeat_v *= (float)(1.602e-12*CharExc.HCharHeatOn); if( heat.htot > 1e-35 ) { /* remember largest fractions of heating and cooling for comment */ CharExc.HCharHeatMax = (float)MAX2( CharExc.HCharHeatMax, SumCTHeat_v/heat.htot ); CharExc.HCharCoolMax = (float)MAX2(CharExc.HCharCoolMax, -SumCTHeat_v/heat.htot); } # ifdef DEBUG_FUN fputs( " <->SumCTHeat()\n", debug_fp ); # endif return( SumCTHeat_v ); } /*================================================================================* *================================================================================*/ double HCTIon( /* ion is stage of ionization on C scale, 0 for atom */ long int ion, /* nelem is atomic number of element on C scale, 1 to 29 */ /* HCTIon(1,5) is C+ + H+ => C++ + H */ long int nelem) { float HCTIon_v, tused; # ifdef DEBUG_FUN fputs( "<+>HCTIon()\n", debug_fp ); # endif /* H charge transfer ionization, using Jim Kingdon's ctdata.for */ /* set up the rate coefficients if this is first call */ if( !lgCTDataDefined ) { if( trace.lgTrace ) { fprintf( ioQQQ," HCTIon doing 1-time init of charge transfer data\n"); } lgCTDataDefined = TRUE; MakeHCTData(); } /* check that data have been linked in, * error here would mean that data below had not been loaded */ assert( CTIonData[2][0][0] > 0. ); /* return zero for highly ionized species */ if( ion >= 3 ) { HCTIon_v = 0.f; # ifdef DEBUG_FUN fputs( " <->HCTIon()\n", debug_fp ); # endif return( HCTIon_v ); } /*begin sanity checks */ /* check that ionization stage is ok for this element*/ assert( ion >= 0); assert( ion < nelem ); /* now check the element is valid, this is routine HCTIon */ assert( nelem > 0 ); assert( nelem < LIMELM ); /* may be no entry, first coefficient is zero in this case */ if( CTIonData[nelem][ion][0] <= 0. ) { HCTIon_v = 0.f; } else { /* Make sure te is between temp. boundaries; set constant outside of range */ tused = (float)MAX2(phycon.te,CTIonData[nelem][ion][4]); tused = (float)MIN2(tused,CTIonData[nelem][ion][5]); tused *= 1e-4f; /* the interpolation equation */ HCTIon_v = (float)(CTIonData[nelem][ion][0]*1e-9*(pow(tused,CTIonData[nelem][ion][1]))* (1. + CTIonData[nelem][ion][2]*exp(CTIonData[nelem][ion][3]* tused))*exp(-CTIonData[nelem][ion][6]/tused)); } # ifdef DEBUG_FUN fputs( " <->HCTIon()\n", debug_fp ); # endif return( HCTIon_v ); } /*================================================================================* *================================================================================*/ double HCTRecom( /* ion is stage of ionization on C scale, 0 for rec to atom */ long int ion, /* nelem is atomic number of element on C scale, 1 = he up to limelm */ /* HCTRecom(1,5) would be C+2 + H => C+ + H+ */ long int nelem) { float HCTRecom_v, tused; # ifdef DEBUG_FUN fputs( "<+>HCTRecom()\n", debug_fp ); # endif /* * H charge transfer recombination using Jim Kingdon's block ctdata.for */ /* set up the rate coefficients if this is first call */ if( !lgCTDataDefined ) { if( trace.lgTrace ) { fprintf( ioQQQ," HCTIon doing 1-time init of charge transfer data\n"); } lgCTDataDefined = TRUE; MakeHCTData(); } /* this is check that data have been set up properly, will * fail if arrays are not initialized properly */ assert( CTRecombData[1][0][0] > 0. ); /* use Dalgarno estimate for highly ionized species, number reset with * set charge transfer command */ if( ion > 3 ) { /* >>chng 96 nov 25, added this option, default is 1.92e-9 * Dalgarno's charge transfer */ HCTRecom_v = HCTMin.HCTAlex*(ion+1.f); # ifdef DEBUG_FUN fputs( " <->HCTRecom()\n", debug_fp ); # endif return( HCTRecom_v ); } /* check that ion stage within bound for this atom */ assert( ion >= 0 ); assert( ion < nelem ); /* now check the element is valid, this is routine HCTIon */ assert( nelem > 0 ); assert( nelem < LIMELM ); tused = (float)MAX2(phycon.te,CTRecombData[nelem][ion][4]); tused = (float)MIN2(tused,CTRecombData[nelem][ion][5]); tused *= 1e-4f; if( tused == 0. ) { HCTRecom_v = 0.f; # ifdef DEBUG_FUN fputs( " <->HCTRecom()\n", debug_fp ); # endif return( HCTRecom_v ); } /* the interpolation equation */ HCTRecom_v = (float)(CTRecombData[nelem][ion][0]*1e-9*(pow(tused,CTRecombData[nelem][ion][1]))* (1. + CTRecombData[nelem][ion][2]*sexp(-CTRecombData[nelem][ion][3]* tused))); /* in sexp negative sign not typo - there are negative signs already * in coefficient, and sexp has implicit negative sign */ # ifdef DEBUG_FUN fputs( " <->HCTRecom()\n", debug_fp ); # endif return( HCTRecom_v ); } /*================================================================================* *================================================================================*/ /*block data with Jim Kingdon's charge transfer data */ /* * first dimension is atomic number of atom, 0 for H * second dimension is ionization stage, * 1=+0 for parent, etc * third dimension is atomic number of atom * second dimension is ionization stage, * 1=+1 for parent, etc */ /* digital form of the fits to the charge transfer * ionization rate coefficients * * Note: First parameter is in units of 1e-9! * Note: Seventh parameter is in units of 1e4 K */ /* digital form of the fits to the charge transfer * recombination rate coefficients (total) * * Note: First parameter is in units of 1e-9! * recombination */ void MakeHCTData(void) { long int i, _r; # ifdef DEBUG_FUN fputs( "<+>MakeHCTData()\n", debug_fp ); # endif /* * following are coefficients for charge transfer ionization, * H+ + A => H + A+ */ /* Lithium +0 */ { static double _itmp0[] = {2.84e-3 , 1.99 , 375.54 , -54.07 , 1e2 , 1e4 , 0., -10.}; for( i=1, _r = 0; i <= 8; i++ ) { CTIonData[2][0][i-1] = (float)_itmp0[_r++]; } } for( i=1; i <= 8; i++ ) { CTIonData[2][1][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[2][2][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[3][0][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[3][1][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[3][2][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[4][0][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[4][1][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[4][2][i-1] = 0.f; } /* C+0 ionization */ { static double _itmp1[] = {1.07e-6 , 3.15 , 176.43 , -4.29 , 1e3 , 1e5 , 0. ,2.34}; for( i=1, _r = 0; i <= 8; i++ ) { CTIonData[5][0][i-1] = (float)_itmp1[_r++]; } } for( i=1; i <= 8; i++ ) { CTIonData[5][1][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[5][2][i-1] = 0.f; } { static double _itmp2[] = {4.55e-3,-0.29,-0.92,-8.38,1e2,5e4, 1.086,-0.94}; for( i=1, _r = 0; i <= 8; i++ ) { CTIonData[6][0][i-1] = (float)_itmp2[_r++]; } } for( i=1; i <= 8; i++ ) { CTIonData[6][1][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[6][2][i-1] = 0.f; } { static double _itmp3[] = {7.40e-2,0.47,24.37,-0.74,1e1,1e4, 0.023,-0.02}; for( i=1, _r = 0; i <= 8; i++ ) { CTIonData[7][0][i-1] = (float)_itmp3[_r++]; } } for( i=1; i <= 8; i++ ) { CTIonData[7][1][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[7][2][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[8][0][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[8][1][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[8][2][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[9][0][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[9][1][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[9][2][i-1] = 0.f; } { static double _itmp4[] = {3.34e-6,9.31,2632.31,-3.04,1e3, 2e4,0.0,-1.74}; for( i=1, _r = 0; i <= 8; i++ ) { CTIonData[10][0][i-1] = (float)_itmp4[_r++]; } } for( i=1; i <= 8; i++ ) { CTIonData[10][1][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[10][2][i-1] = 0.f; } { static double _itmp5[] = {9.76e-3,3.14,55.54,-1.12,5e3,3e4, 0.0,1.52}; for( i=1, _r = 0; i <= 8; i++ ) { CTIonData[11][0][i-1] = (float)_itmp5[_r++]; } } { static double _itmp6[] = {7.60e-5,0.00,-1.97,-4.32,1e4,3e5, 1.670,-1.44}; for( i=1, _r = 0; i <= 8; i++ ) { CTIonData[11][1][i-1] = (float)_itmp6[_r++]; } } for( i=1; i <= 8; i++ ) { CTIonData[11][2][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[12][0][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[12][1][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[12][2][i-1] = 0.f; } { static double _itmp7[] = {0.92,1.15,0.80,-0.24,1e3,2e5,0.0, 0.12}; for( i=1, _r = 0; i <= 8; i++ ) { CTIonData[13][0][i-1] = (float)_itmp7[_r++]; } } /* Si+1 ionization */ { static double _itmp8[] = {2.26 , 7.36e-2 , -0.43 , -0.11 , 2e3 , 1e5 , 3.031 ,-2.72}; for( i=1, _r = 0; i <= 8; i++ ) { CTIonData[13][1][i-1] = (float)_itmp8[_r++]; } } for( i=1; i <= 8; i++ ) { CTIonData[13][2][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[14][0][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[14][1][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[14][2][i-1] = 0.f; } { static double _itmp9[] = {1.00e-5,0.00,0.00,0.00,1e3,1e4, 0.0,-3.24}; for( i=1, _r = 0; i <= 8; i++ ) { CTIonData[15][0][i-1] = (float)_itmp9[_r++]; } } for( i=1; i <= 8; i++ ) { CTIonData[15][1][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[15][2][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[16][0][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[16][1][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[16][2][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[17][0][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[17][1][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[17][2][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[18][0][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[18][1][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[18][2][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[19][0][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[19][1][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[19][2][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[20][0][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[20][1][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[20][2][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[21][0][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[21][1][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[21][2][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[22][0][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[22][1][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[22][2][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[23][0][i-1] = 0.f; } { static double _itmp10[] = {4.39,0.61,-0.89,-3.56,1e3,3e4, 3.349,-2.89}; for( i=1, _r = 0; i <= 8; i++ ) { CTIonData[23][1][i-1] = (float)_itmp10[_r++]; } } for( i=1; i <= 8; i++ ) { CTIonData[23][2][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[24][0][i-1] = 0.f; } { static double _itmp11[] = {2.83e-1,6.80e-3,6.44e-2,-9.70, 1e3,3e4,2.368,-2.04}; for( i=1, _r = 0; i <= 8; i++ ) { CTIonData[24][1][i-1] = (float)_itmp11[_r++]; } } for( i=1; i <= 8; i++ ) { CTIonData[24][2][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[25][0][i-1] = 0.f; } { static double _itmp12[] = {2.10,7.72e-2,-0.41,-7.31,1e4,1e5, 3.005,-2.56}; for( i=1, _r = 0; i <= 8; i++ ) { CTIonData[25][1][i-1] = (float)_itmp12[_r++]; } } for( i=1; i <= 8; i++ ) { CTIonData[25][2][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[26][0][i-1] = 0.f; } { static double _itmp13[] = {1.20e-2,3.49,24.41,-1.26,1e3,3e4, 4.044,-3.49}; for( i=1, _r = 0; i <= 8; i++ ) { CTIonData[26][1][i-1] = (float)_itmp13[_r++]; } } for( i=1; i <= 8; i++ ) { CTIonData[26][2][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[27][0][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[27][1][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[27][2][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[28][0][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[28][1][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[28][2][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[29][0][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[29][1][i-1] = 0.f; } for( i=1; i <= 8; i++ ) { CTIonData[29][2][i-1] = 0.f; } { static double _itmp14[] = {7.47e-6,2.06,9.93,-3.89,6e3,1e5, 10.99}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[1][0][i-1] = (float)_itmp14[_r++]; } } { static double _itmp15[] = {1.00e-5,0.,0.,0.,1e3,1e7,-40.81}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[1][1][i-1] = (float)_itmp15[_r++]; } } for( i=1; i <= 7; i++ ) { CTRecombData[2][0][i-1] = 0.f; } { static double _itmp16[] = {1.26,0.96,3.02,-0.65,1e3,3e4,3.02}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[2][1][i-1] = (float)_itmp16[_r++]; } } { static double _itmp17[] = {1.00e-5,0.,0.,0.,2e3,5e4,-108.83}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[2][2][i-1] = (float)_itmp17[_r++]; } } for( i=1; i <= 7; i++ ) { CTRecombData[3][0][i-1] = 0.f; } { static double _itmp18[] = {1.00e-5,0.,0.,0.,2e3,5e4,-4.61}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[3][1][i-1] = (float)_itmp18[_r++]; } } { static double _itmp19[] = {1.00e-5,0.,0.,0.,2e3,5e4,-140.26}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[3][2][i-1] = (float)_itmp19[_r++]; } } { static double _itmp20[] = {5.17,0.82,-0.69,-1.12,2e3,5e4, 10.59}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[3][3][i-1] = (float)_itmp20[_r++]; } } for( i=1; i <= 7; i++ ) { CTRecombData[4][0][i-1] = 0.f; } { static double _itmp21[] = {2.00e-2,0.,0.,0.,1e3,1e9,2.46}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[4][1][i-1] = (float)_itmp21[_r++]; } } { static double _itmp22[] = {1.00e-5,0.,0.,0.,2e3,5e4,-24.33}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[4][2][i-1] = (float)_itmp22[_r++]; } } /* B+4 recombinatino */ { static double _itmp23[] = {2.74 , 0.93 , -0.61 , -1.13 , 2e3 , 5e4 , 11.}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[4][3][i-1] = (float)_itmp23[_r++]; } } /* C+1 recombinatino */ { static double _itmp24[] = {4.88e-7 , 3.25 , -1.12 , -0.21 , 5.5e3 , 1e5 , -2.34}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[5][0][i-1] = (float)_itmp24[_r++]; } } { static double _itmp25[] = {1.67e-4,2.79,304.72,-4.07,5e3, 5e4,4.01}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[5][1][i-1] = (float)_itmp25[_r++]; } } { static double _itmp26[] = {3.25,0.21,0.19,-3.29,1e3,1e5,5.73}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[5][2][i-1] = (float)_itmp26[_r++]; } } { static double _itmp27[] = {332.46,-0.11,-9.95e-1,-1.58e-3, 1e1,1e5,11.30}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[5][3][i-1] = (float)_itmp27[_r++]; } } { static double _itmp28[] = {1.01e-3,-0.29,-0.92,-8.38,1e2, 5e4,0.94}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[6][0][i-1] = (float)_itmp28[_r++]; } } { static double _itmp29[] = {3.05e-1,0.60,2.65,-0.93,1e3,1e5, 4.56}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[6][1][i-1] = (float)_itmp29[_r++]; } } { static double _itmp30[] = {4.54,0.57,-0.65,-0.89,1e1,1e5, 6.40}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[6][2][i-1] = (float)_itmp30[_r++]; } } /* N+4 recombination */ { static double _itmp31[] = { 2.95 , 0.55 , -0.39 , -1.07 , 1e3 , 1e6 , 11.}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[6][3][i-1] = (float)_itmp31[_r++]; } } { static double _itmp32[] = {1.04,3.15e-2,-0.61,-9.73,1e1,1e4, 0.02}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[7][0][i-1] = (float)_itmp32[_r++]; } } { static double _itmp33[] = {1.04,0.27,2.02,-5.92,1e2,1e5,6.65}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[7][1][i-1] = (float)_itmp33[_r++]; } } { static double _itmp34[] = {3.98,0.26,0.56,-2.62,1e3,5e4,5.}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[7][2][i-1] = (float)_itmp34[_r++]; } } { static double _itmp35[] = {2.52e-1,0.63,2.08,-4.16,1e3,3e4, 8.47}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[7][3][i-1] = (float)_itmp35[_r++]; } } for( i=1; i <= 7; i++ ) { CTRecombData[8][0][i-1] = 0.f; } { static double _itmp36[] = {1.00e-5,0.,0.,0.,2e3,5e4,-21.37}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[8][1][i-1] = (float)_itmp36[_r++]; } } { static double _itmp37[] = {9.86,0.29,-0.21,-1.15,2e3,5e4, 5.6}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[8][2][i-1] = (float)_itmp37[_r++]; } } { static double _itmp38[] = {7.15e-1,1.21,-0.70,-0.85,2e3,5e4, 11.8}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[8][3][i-1] = (float)_itmp38[_r++]; } } for( i=1; i <= 7; i++ ) { CTRecombData[9][0][i-1] = 0.f; } { static double _itmp39[] = {1.00e-5,0.,0.,0.,5e3,5e4,-27.36}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[9][1][i-1] = (float)_itmp39[_r++]; } } { static double _itmp40[] = {14.73,4.52e-2,-0.84,-0.31,5e3, 5e4,5.82}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[9][2][i-1] = (float)_itmp40[_r++]; } } { static double _itmp41[] = {6.47,0.54,3.59,-5.22,1e3,3e4,8.60}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[9][3][i-1] = (float)_itmp41[_r++]; } } for( i=1; i <= 7; i++ ) { CTRecombData[10][0][i-1] = 0.f; } { static double _itmp42[] = {1.00e-5,0.,0.,0.,2e3,5e4,-33.68}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[10][1][i-1] = (float)_itmp42[_r++]; } } { static double _itmp43[] = {1.33,1.15,1.20,-0.32,2e3,5e4,6.25}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[10][2][i-1] = (float)_itmp43[_r++]; } } { static double _itmp44[] = {1.01e-1,1.34,10.05,-6.41,2e3,5e4, 11.}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[10][3][i-1] = (float)_itmp44[_r++]; } } for( i=1; i <= 7; i++ ) { CTRecombData[11][0][i-1] = 0.f; } { static double _itmp45[] = {8.58e-5,2.49e-3,2.93e-2,-4.33, 1e3,3e4,1.44}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[11][1][i-1] = (float)_itmp45[_r++]; } } { static double _itmp46[] = {6.49,0.53,2.82,-7.63,1e3,3e4,5.73}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[11][2][i-1] = (float)_itmp46[_r++]; } } { static double _itmp47[] = {6.36,0.55,3.86,-5.19,1e3,3e4,8.60}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[11][3][i-1] = (float)_itmp47[_r++]; } } for( i=1; i <= 7; i++ ) { CTRecombData[12][0][i-1] = 0.f; } { static double _itmp48[] = {1.00e-5,0.,0.,0.,1e3,3e4,-5.23}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[12][1][i-1] = (float)_itmp48[_r++]; } } { static double _itmp49[] = {7.11e-5,4.12,1.72e4,-22.24,1e3, 3e4,8.17}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[12][2][i-1] = (float)_itmp49[_r++]; } } { static double _itmp50[] = {7.52e-1,0.77,6.24,-5.67,1e3,3e4, 8.}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[12][3][i-1] = (float)_itmp50[_r++]; } } for( i=1; i <= 7; i++ ) { CTRecombData[13][0][i-1] = 0.f; } /* Si+2 recombination */ { static double _itmp51[] = {6.77 , 7.36e-2 , -0.43 , -0.11 , 5e2 , 1e5 , 2.72}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[13][1][i-1] = (float)_itmp51[_r++]; } } { static double _itmp52[] = {4.90e-1,-8.74e-2,-0.36,-0.79,1e3, 3e4,4.23}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[13][2][i-1] = (float)_itmp52[_r++]; } } { static double _itmp53[] = {7.58,0.37,1.06,-4.09,1e3,5e4,7.49}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[13][3][i-1] = (float)_itmp53[_r++]; } } for( i=1; i <= 7; i++ ) { CTRecombData[14][0][i-1] = 0.f; } { static double _itmp54[] = {1.74e-4,3.84,36.06,-0.97,1e3,3e4, 3.45}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[14][1][i-1] = (float)_itmp54[_r++]; } } { static double _itmp55[] = {9.46e-2,-5.58e-2,0.77,-6.43,1e3, 3e4,7.29}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[14][2][i-1] = (float)_itmp55[_r++]; } } { static double _itmp56[] = {5.37,0.47,2.21,-8.52,1e3,3e4,9.71}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[14][3][i-1] = (float)_itmp56[_r++]; } } { static double _itmp57[] = {3.82e-7,11.10,2.57e4,-8.22,1e3, 1e4,-3.24}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[15][0][i-1] = (float)_itmp57[_r++]; } } { static double _itmp58[] = {1.00e-5,0.,0.,0.,1e3,3e4,-9.73}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[15][1][i-1] = (float)_itmp58[_r++]; } } { static double _itmp59[] = {2.29,4.02e-2,1.59,-6.06,1e3,3e4, 5.73}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[15][2][i-1] = (float)_itmp59[_r++]; } } { static double _itmp60[] = {6.44,0.13,2.69,-5.69,1e3,3e4,8.60}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[15][3][i-1] = (float)_itmp60[_r++]; } } for( i=1; i <= 7; i++ ) { CTRecombData[16][0][i-1] = 0.f; } { static double _itmp61[] = {1.00e-5,0.,0.,0.,1e3,3e4,-10.21}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[16][1][i-1] = (float)_itmp61[_r++]; } } { static double _itmp62[] = {1.88,0.32,1.77,-5.70,1e3,3e4,8.}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[16][2][i-1] = (float)_itmp62[_r++]; } } { static double _itmp63[] = {7.27,0.29,1.04,-10.14,1e3,3e4, 9.}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[16][3][i-1] = (float)_itmp63[_r++]; } } for( i=1; i <= 7; i++ ) { CTRecombData[17][0][i-1] = 0.f; } { static double _itmp64[] = {1.00e-5,0.,0.,0.,1e3,3e4,-14.03}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[17][1][i-1] = (float)_itmp64[_r++]; } } { static double _itmp65[] = {4.57,0.27,-0.18,-1.57,1e3,3e4, 5.73}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[17][2][i-1] = (float)_itmp65[_r++]; } } { static double _itmp66[] = {6.37,0.85,10.21,-6.22,1e3,3e4, 8.60}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[17][3][i-1] = (float)_itmp66[_r++]; } } for( i=1; i <= 7; i++ ) { CTRecombData[18][0][i-1] = 0.f; } { static double _itmp67[] = {1.00e-5,0.,0.,0.,1e3,3e4,-18.02}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[18][1][i-1] = (float)_itmp67[_r++]; } } { static double _itmp68[] = {4.76,0.44,-0.56,-0.88,1e3,3e4, 6.}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[18][2][i-1] = (float)_itmp68[_r++]; } } { static double _itmp69[] = {1.00e-5,0.,0.,0.,1e3,3e4,-47.3}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[18][3][i-1] = (float)_itmp69[_r++]; } } for( i=1; i <= 7; i++ ) { CTRecombData[19][0][i-1] = 0.f; } { static double _itmp70[] = {0.,0.,0.,0.,1e1,1e9,0.}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[19][1][i-1] = (float)_itmp70[_r++]; } } { static double _itmp71[] = {3.17e-2,2.12,12.06,-0.40,1e3,3e4, 6.6}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[19][2][i-1] = (float)_itmp71[_r++]; } } { static double _itmp72[] = {2.68,0.69,-0.68,-4.47,1e3,3e4, 9.9}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[19][3][i-1] = (float)_itmp72[_r++]; } } for( i=1; i <= 7; i++ ) { CTRecombData[20][0][i-1] = 0.f; } { static double _itmp73[] = {0.,0.,0.,0.,1e1,1e9,0.}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[20][1][i-1] = (float)_itmp73[_r++]; } } { static double _itmp74[] = {7.22e-3,2.34,411.50,-13.24,1e3, 3e4,3.5}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[20][2][i-1] = (float)_itmp74[_r++]; } } { static double _itmp75[] = {1.20e-1,1.48,4.00,-9.33,1e3,3e4, 10.61}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[20][3][i-1] = (float)_itmp75[_r++]; } } for( i=1; i <= 7; i++ ) { CTRecombData[21][0][i-1] = 0.f; } { static double _itmp76[] = {0.,0.,0.,0.,1e1,1e9,0.}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[21][1][i-1] = (float)_itmp76[_r++]; } } { static double _itmp77[] = {6.34e-1,6.87e-3,0.18,-8.04,1e3, 3e4,4.3}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[21][2][i-1] = (float)_itmp77[_r++]; } } { static double _itmp78[] = {4.37e-3,1.25,40.02,-8.05,1e3,3e4, 5.3}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[21][3][i-1] = (float)_itmp78[_r++]; } } for( i=1; i <= 7; i++ ) { CTRecombData[22][0][i-1] = 0.f; } { static double _itmp79[] = {1.00e-5,0.,0.,0.,1e3,3e4,-1.05}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[22][1][i-1] = (float)_itmp79[_r++]; } } { static double _itmp80[] = {5.12,-2.18e-2,-0.24,-0.83,1e3, 3e4,4.7}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[22][2][i-1] = (float)_itmp80[_r++]; } } { static double _itmp81[] = {1.96e-1,-8.53e-3,0.28,-6.46,1e3, 3e4,6.2}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[22][3][i-1] = (float)_itmp81[_r++]; } } for( i=1; i <= 7; i++ ) { CTRecombData[23][0][i-1] = 0.f; } { static double _itmp82[] = {5.27e-1,0.61,-0.89,-3.56,1e3,3e4, 2.89}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[23][1][i-1] = (float)_itmp82[_r++]; } } { static double _itmp83[] = {10.90,0.24,0.26,-11.94,1e3,3e4, 5.4}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[23][2][i-1] = (float)_itmp83[_r++]; } } { static double _itmp84[] = {1.18,0.20,0.77,-7.09,1e3,3e4,6.6}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[23][3][i-1] = (float)_itmp84[_r++]; } } for( i=1; i <= 7; i++ ) { CTRecombData[24][0][i-1] = 0.f; } { static double _itmp85[] = {1.65e-1,6.80e-3,6.44e-2,-9.70, 1e3,3e4,2.04}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[24][1][i-1] = (float)_itmp85[_r++]; } } { static double _itmp86[] = {14.20,0.34,-0.41,-1.19,1e3,3e4, 6.}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[24][2][i-1] = (float)_itmp86[_r++]; } } { static double _itmp87[] = {4.43e-1,0.91,10.76,-7.49,1e3,3e4, 7.}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[24][3][i-1] = (float)_itmp87[_r++]; } } for( i=1; i <= 7; i++ ) { CTRecombData[25][0][i-1] = 0.f; } { static double _itmp88[] = {1.26,7.72e-2,-0.41,-7.31,1e3,1e5, 2.56}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[25][1][i-1] = (float)_itmp88[_r++]; } } { static double _itmp89[] = {3.42,0.51,-2.06,-8.99,1e3,1e5, 6.3}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[25][2][i-1] = (float)_itmp89[_r++]; } } { static double _itmp90[] = {14.60,3.57e-2,-0.92,-0.37,1e3, 3e4,10.}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[25][3][i-1] = (float)_itmp90[_r++]; } } for( i=1; i <= 7; i++ ) { CTRecombData[26][0][i-1] = 0.f; } { static double _itmp91[] = {5.30,0.24,-0.91,-0.47,1e3,3e4, 2.9}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[26][1][i-1] = (float)_itmp91[_r++]; } } { static double _itmp92[] = {3.26,0.87,2.85,-9.23,1e3,3e4,6.}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[26][2][i-1] = (float)_itmp92[_r++]; } } { static double _itmp93[] = {1.03,0.58,-0.89,-0.66,1e3,3e4, 10.51}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[26][3][i-1] = (float)_itmp93[_r++]; } } for( i=1; i <= 7; i++ ) { CTRecombData[27][0][i-1] = 0.f; } { static double _itmp94[] = {1.05,1.28,6.54,-1.81,1e3,1e5,3.0}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[27][1][i-1] = (float)_itmp94[_r++]; } } { static double _itmp95[] = {9.73,0.35,0.90,-5.33,1e3,3e4,5.2}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[27][2][i-1] = (float)_itmp95[_r++]; } } { static double _itmp96[] = {6.14,0.25,-0.91,-0.42,1e3,3e4, 10.}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[27][3][i-1] = (float)_itmp96[_r++]; } } for( i=1; i <= 7; i++ ) { CTRecombData[28][0][i-1] = 0.f; } { static double _itmp97[] = {1.47e-3,3.51,23.91,-0.93,1e3,3e4, 3.44}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[28][1][i-1] = (float)_itmp97[_r++]; } } { static double _itmp98[] = {9.26,0.37,0.40,-10.73,1e3,3e4, 5.6}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[28][2][i-1] = (float)_itmp98[_r++]; } } { static double _itmp99[] = {11.59,0.20,0.80,-6.62,1e3,3e4, 9.}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[28][3][i-1] = (float)_itmp99[_r++]; } } for( i=1; i <= 7; i++ ) { CTRecombData[29][0][i-1] = 0.f; } { static double _itmp100[] = {1.00e-5,0.,0.,0.,1e3,3e4,-4.37}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[29][1][i-1] = (float)_itmp100[_r++]; } } { static double _itmp101[] = {6.96e-4,4.24,26.06,-1.24,1e3, 3e4,7.8}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[29][2][i-1] = (float)_itmp101[_r++]; } } { static double _itmp102[] = {1.33e-2,1.56,-0.92,-1.20,1e3, 3e4,11.73}; for( i=1, _r = 0; i <= 7; i++ ) { CTRecombData[29][3][i-1] = (float)_itmp102[_r++]; } } # ifdef DEBUG_FUN fputs( " <->MakeHCTData()\n", debug_fp ); # endif }