Changeset 1624
- Timestamp:
- 12/07/07 07:00:14 (12 months ago)
- Location:
- trunk/source
- Files:
-
- 7 modified
-
hydrogenic.h (modified) (1 diff)
-
hydrolevel.cpp (modified) (1 diff)
-
iso.h (modified) (1 diff)
-
iso_create.cpp (modified) (5 diffs)
-
prt_lines_hydro.cpp (modified) (2 diffs)
-
rt_line_all.cpp (modified) (2 diffs)
-
rt_stark.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/hydrogenic.h
r1622 r1624 70 70 bool lgReevalRecom; 71 71 72 /** arrays for stark broadening in Puetter formalism */73 realnum **strkar/**strkar[LMHLVL+1][LMHLVL+1]*/;74 double **pestrk/**pestrk[LMHLVL+1][LMHLVL+1]*/;75 76 72 /** dstfe2lya is destruction probability for Lya onto FeII, 77 73 * net deexcitation of Lya but not ots destruction */ -
trunk/source/hydrolevel.cpp
r1557 r1624 177 177 for( ipLo=ipH1s; ipLo < ipHi; ipLo++ ) 178 178 { 179 fprintf( ioQQQ,PrintEfmt("%9.2e", hydro.pestrk[ipLo][ipHi] ));179 fprintf( ioQQQ,PrintEfmt("%9.2e", iso.pestrk[ipH_LIKE][nelem][ipLo][ipHi] )); 180 180 } 181 181 fprintf( ioQQQ, "\n" ); -
trunk/source/iso.h
r1622 r1624 165 165 { 166 166 const char **chISO; 167 168 /** arrays for stark broadening in Puetter formalism */ 169 realnum ****strkar; 170 double ****pestrk; 167 171 168 172 /** Find index given quantum numbers -
trunk/source/iso_create.cpp
r1618 r1624 439 439 /********** Stark Broadening **********/ 440 440 /***************************************/ 441 if( !lgHydroMalloc ) 442 { 443 /*realnum **strkar strkar[LMHLVL+1][LMHLVL+1]*/ 444 hydro.strkar = (realnum**)MALLOC( sizeof(realnum*)*(unsigned)(iso.numLevels_max[ipH_LIKE][ipHYDROGEN]) ); 445 /*realnum **pestrk pestrk[LMHLVL+1][LMHLVL+1]*/ 446 hydro.pestrk = (double**)MALLOC( sizeof(double*)*(unsigned)(iso.numLevels_max[ipH_LIKE][ipHYDROGEN]) ); 447 448 /* now do second dimension of previous two */ 449 for( ipLo=0; ipLo< iso.numLevels_max[ipH_LIKE][ipHYDROGEN];++ipLo ) 450 { 451 hydro.strkar[ipLo] = 452 (realnum*)MALLOC( sizeof(realnum)*(unsigned)(iso.numLevels_max[ipH_LIKE][ipHYDROGEN]) ); 453 hydro.pestrk[ipLo] = 454 (double*)MALLOC( sizeof(double)*(unsigned)(iso.numLevels_max[ipH_LIKE][ipHYDROGEN]) ); 455 } 456 457 /* fill in hydro.strkar array */ 458 for( ipLo=ipH1s; ipLo < (iso.numLevels_max[ipH_LIKE][ipHYDROGEN] - 1); ipLo++ ) 459 { 460 for( ipHi= ipLo + 1; ipHi < iso.numLevels_max[ipH_LIKE][ipHYDROGEN]; ipHi++ ) 461 { 462 long nHi = StatesElem[ipH_LIKE][ipHYDROGEN][ipHi].n; 463 long nLo = StatesElem[ipH_LIKE][ipHYDROGEN][ipHi].n; 464 465 hydro.strkar[ipLo][ipHi] = (realnum)pow((realnum)( nLo * nHi ),(realnum)1.2f); 466 hydro.pestrk[ipLo][ipHi] = 0.; 467 } 468 } 469 470 /* we will never do this again, in this coreload, 471 * following says never change number of levels in hydrogen atom again, 472 * future hydrogenic levels commands will be ignored*/ 473 lgHydroMalloc = true; 441 /* fill in iso.strkar array */ 442 for( ipISO=ipH_LIKE; ipISO < NISO; ++ipISO ) 443 { 444 for( nelem=ipISO; nelem < LIMELM; nelem++ ) 445 { 446 if( nelem < 2 || dense.lgElmtOn[nelem] ) 447 { 448 for( ipLo=ipH1s; ipLo < (iso.numLevels_max[ipISO][nelem] - 1); ipLo++ ) 449 { 450 for( ipHi= ipLo + 1; ipHi < iso.numLevels_max[ipISO][nelem]; ipHi++ ) 451 { 452 long nHi = StatesElem[ipISO][nelem][ipHi].n; 453 fixit(); /* this should be ipLo! */ 454 long nLo = StatesElem[ipISO][nelem][ipHi].n; 455 456 iso.strkar[ipISO][nelem][ipLo][ipHi] = (realnum)pow((realnum)( nLo * nHi ),(realnum)1.2f); 457 iso.pestrk[ipISO][nelem][ipLo][ipHi] = 0.; 458 } 459 } 460 } 461 } 474 462 } 475 463 … … 590 578 iso.chISO[ipHE_LIKE] = "he-like"; 591 579 580 iso.strkar = (realnum ****)MALLOC( sizeof(realnum***)*NISO ); 581 582 iso.pestrk = (double ****)MALLOC( sizeof(double***)*NISO ); 583 592 584 iso.ipOpac = (long int ***)MALLOC(sizeof(long **)*NISO ); 593 585 … … 639 631 secondaries.Hx12[ipISO] = (realnum **)MALLOC(sizeof(realnum *)*LIMELM ); 640 632 633 iso.strkar[ipISO] = (realnum ***)MALLOC( sizeof(realnum**)*LIMELM ); 634 635 iso.pestrk[ipISO] = (double ***)MALLOC( sizeof(double**)*LIMELM ); 636 641 637 iso.ipOpac[ipISO] = (long int **)MALLOC(sizeof(long *)*LIMELM ); 642 638 … … 695 691 696 692 iso.nLyman_malloc[ipISO] = iso.nLyman[ipISO]; 693 694 iso.strkar[ipISO][nelem] = 695 (realnum **)MALLOC( sizeof(realnum*)*(unsigned)(iso.numLevels_max[ipISO][nelem]) ); 696 697 iso.pestrk[ipISO][nelem] = 698 (double **)MALLOC( sizeof(double*)*(unsigned)(iso.numLevels_max[ipISO][nelem]) ); 697 699 698 700 iso.ipOpac[ipISO][nelem] = … … 801 803 for( i = 0; i < iso.numLevels_max[ipISO][nelem]; ++i) 802 804 { 805 iso.strkar[ipISO][nelem][i] = 806 (realnum *)MALLOC( sizeof(realnum)*(unsigned)(iso.numLevels_max[ipISO][nelem]) ); 807 iso.pestrk[ipISO][nelem][i] = 808 (double *)MALLOC( sizeof(double)*(unsigned)(iso.numLevels_max[ipISO][nelem]) ); 809 803 810 iso.CascadeProb[ipISO][nelem][i] = (double*)MALLOC(sizeof(double)*(unsigned)(i+1) ); 804 811 -
trunk/source/prt_lines_hydro.cpp
r1616 r1624 101 101 " this is the heating due to 3-body recombination "); 102 102 103 linadd(dense.xIonDense[ipHYDROGEN][1]*StatesElem[ipH_LIKE][ipHYDROGEN][ipH2p].Pop*0.* hydro.pestrk[ipH2p][ipH1s]*1.634e-11,1216,"Strk",'i',103 linadd(dense.xIonDense[ipHYDROGEN][1]*StatesElem[ipH_LIKE][ipHYDROGEN][ipH2p].Pop*0.*iso.pestrk[ipH_LIKE][ipHYDROGEN][ipH2p][ipH1s]*1.634e-11,1216,"Strk",'i', 104 104 " Stark broadening contribution to line "); 105 105 106 linadd(dense.xIonDense[ipHYDROGEN][1]*StatesElem[ipH_LIKE][ipHYDROGEN][ipH3s].Pop* hydro.pestrk[ipH3s][ipH2p]*3.025e-12,106 linadd(dense.xIonDense[ipHYDROGEN][1]*StatesElem[ipH_LIKE][ipHYDROGEN][ipH3s].Pop*iso.pestrk[ipH_LIKE][ipHYDROGEN][ipH3s][ipH2p]*3.025e-12, 107 107 6563,"Strk",'i', 108 108 " Stark broadening contribution to line "); 109 109 110 linadd(dense.xIonDense[ipHYDROGEN][1]*StatesElem[ipH_LIKE][ipHYDROGEN][ipH4s].Pop* hydro.pestrk[ipH4s][ipH2p]*4.084e-12,110 linadd(dense.xIonDense[ipHYDROGEN][1]*StatesElem[ipH_LIKE][ipHYDROGEN][ipH4s].Pop*iso.pestrk[ipH_LIKE][ipHYDROGEN][ipH4s][ipH2p]*4.084e-12, 111 111 4861,"Strk",'i', 112 112 "Stark broadening contribution to line "); 113 113 114 linadd(dense.xIonDense[ipHYDROGEN][1]*StatesElem[ipH_LIKE][ipHYDROGEN][ipH4p].Pop* hydro.pestrk[ipH4p][ipH3s]*1.059e-12,114 linadd(dense.xIonDense[ipHYDROGEN][1]*StatesElem[ipH_LIKE][ipHYDROGEN][ipH4p].Pop*iso.pestrk[ipH_LIKE][ipHYDROGEN][ipH4p][ipH3s]*1.059e-12, 115 115 18751,"Strk",'i', 116 116 " Stark broadening contribution to line "); … … 121 121 /* 06 dec 21, change from numLevels_max to _local was mistake for this entire file. Undo. */ 122 122 if( iso.numLevels_max[ipH_LIKE][ipHYDROGEN] > 5 ) 123 linadd(dense.xIonDense[ipHYDROGEN][1]*StatesElem[ipH_LIKE][ipHYDROGEN][ipH5p].Pop* hydro.pestrk[ipH5p][ipH4s]*4.900e-13,40512,"Strk",'i',123 linadd(dense.xIonDense[ipHYDROGEN][1]*StatesElem[ipH_LIKE][ipHYDROGEN][ipH5p].Pop*iso.pestrk[ipH_LIKE][ipHYDROGEN][ipH5p][ipH4s]*4.900e-13,40512,"Strk",'i', 124 124 "Stark broadening part of line"); 125 125 -
trunk/source/rt_line_all.cpp
r1563 r1624 251 251 Transitions[ipH_LIKE][ipHYDROGEN][ipHi][ipLo].Emis->Pesc = MIN2(1.f, 252 252 Transitions[ipH_LIKE][ipHYDROGEN][ipHi][ipLo].Emis->Pesc+ 253 (realnum) hydro.pestrk[ipLo][ipHi]);253 (realnum)iso.pestrk[ipH_LIKE][ipHYDROGEN][ipLo][ipHi]); 254 254 } 255 255 } 256 256 } 257 258 259 /* try adding these for all lines of iso sequences */ 260 #if 0 261 /* these loops exclude lya, so are only evaluated with escprob are 262 * evaluated. 263 * add on Stark escape probabilities for H itself */ 264 for( ipISO=0; ipISO<NISO; ipISO++ ) 265 { 266 fixit(); /* this MAX2 is only here because hydrogen is done above, 267 * be sure to remove it during any consolidation. */ 268 for( nelem=MAX2(ipISO,1); nelem<LIMELM; nelem++ ) 269 { 270 if( nelem < 2 || dense.lgElmtOn[nelem] ) 271 { 272 for( ipLo=ipH1s; ipLo < (iso.numLevels_max[ipISO][nelem] - 1); ipLo++ ) 273 { 274 /* >>chng 02 jun 12, do not do Lya here, since done above */ 275 for( ipHi=MAX2((long)3,ipLo+1); ipHi < iso.numLevels_max[ipISO][nelem]; ipHi++ ) 276 { 277 if( Transitions[ipISO][nelem][ipHi][ipLo].Emis == NULL ) 278 continue; 279 280 /* >>chng 03 jun 07, do not clobber esp prob when line is masing - 281 * this had effect of preventing total escape prob from getting larger than 1 */ 282 if( Transitions[ipISO][nelem][ipHi][ipLo].Emis->Pesc<1. ) 283 { 284 Transitions[ipISO][nelem][ipHi][ipLo].Emis->Pesc = MIN2(1.f, 285 Transitions[ipISO][nelem][ipHi][ipLo].Emis->Pesc+ 286 (realnum)iso.pestrk[ipISO][nelem][ipLo][ipHi]); 287 } 288 } 289 } 290 } 291 } 292 } 293 #endif 257 294 } 258 295 … … 262 299 Transitions[ipH_LIKE][ipHYDROGEN][ipH2p][ipH1s].Emis->Pesc = MIN2(1.f, 263 300 Transitions[ipH_LIKE][ipHYDROGEN][ipH2p][ipH1s].Emis->Pesc+ 264 (realnum) hydro.pestrk[ipH1s][ipH2p]);301 (realnum)iso.pestrk[ipH_LIKE][ipHYDROGEN][ipH1s][ipH2p]); 265 302 } 266 303 -
trunk/source/rt_stark.cpp
r1562 r1624 13 13 { 14 14 long int ipLo, 15 ipHi; 15 ipHi, 16 nelem, 17 ipISO; 18 16 19 double aa , ah, 17 20 stark, … … 20 23 DEBUG_ENTRY( "RT_stark()" ); 21 24 22 if( !rt.lgStarkON || dense.eden < 1e8)25 for( ipISO=ipH_LIKE; ipISO<NISO; ++ipISO ) 23 26 { 24 for( ipHi=0; ipHi < iso.numLevels_max[ipH_LIKE][ipHYDROGEN]; ipHi++ ) 27 /* loop over all iso-electronic sequences */ 28 for( nelem=ipISO; nelem<LIMELM; ++nelem ) 25 29 { 26 for( ipLo=0; ipLo < iso.numLevels_max[ipH_LIKE][ipHYDROGEN]; ipLo++ ) 30 fixit(); /* for now still do only hydrogen */ 31 if( ipISO != ipH_LIKE || nelem != ipHYDROGEN ) 32 continue; 33 34 if( nelem >= 2 && !dense.lgElmtOn[nelem] ) 35 continue; 36 37 if( !rt.lgStarkON || dense.eden < 1e8 ) 27 38 { 28 hydro.pestrk[ipHi][ipLo] = 0.; 29 hydro.pestrk[ipLo][ipHi] = 0.; 39 for( ipHi=0; ipHi < iso.numLevels_max[ipISO][nelem]; ipHi++ ) 40 { 41 for( ipLo=0; ipLo < iso.numLevels_max[ipISO][nelem]; ipLo++ ) 42 { 43 iso.pestrk[ipISO][nelem][ipHi][ipLo] = 0.; 44 iso.pestrk[ipISO][nelem][ipLo][ipHi] = 0.; 45 } 46 } 47 continue; 30 48 } 31 }32 return;33 }34 49 35 /* evaluate Stark escape probability from36 * >>ref Puetter Ap.J. 251, 446. */50 /* evaluate Stark escape probability from 51 * >>ref Puetter Ap.J. 251, 446. */ 37 52 38 /* coefficients for Stark broadening escape probability 39 * to be Puetters AH, equation 9b, needs factor of (Z^-4.5 * (nu*nl)^3 * xl) */ 40 fixit(); //include Z factor 41 ah = 6.9e-6*1000./1e12/(phycon.sqrte*phycon.te10*phycon.te10* 42 phycon.te03*phycon.te01*phycon.te01)*dense.eden; 53 /* coefficients for Stark broadening escape probability 54 * to be Puetters AH, equation 9b, needs factor of (Z^-4.5 * (nu*nl)^3 * xl) */ 55 ah = 6.9e-6*1000./1e12/(phycon.sqrte*phycon.te10*phycon.te10* 56 phycon.te03*phycon.te01*phycon.te01)*dense.eden; 43 57 44 /* coefficient for all lines except Ly alpha */ 45 /* equation 10b, except missing tau^-0.6 */ 46 stark = 0.264*pow(ah,0.4); 58 fixit(); //include Z factor 59 ah *= pow( (double)(nelem+1), -4.5 ); 47 60 48 /* coefficient forLy alpha */49 /* first few factors resemble equation 13c...what about the rest?*/50 strkla = 0.538*ah*4.*9.875*(phycon.sqrte/phycon.te10/phycon.te03);61 /* coefficient for all lines except Ly alpha */ 62 /* equation 10b, except missing tau^-0.6 */ 63 stark = 0.264*pow(ah,0.4); 51 64 52 /* Lyman lines always have outer optical depths */ 53 /*ASSERT( Transitions[ipH_LIKE][ipHYDROGEN][ipH2p][ipH1s].TauIn> 0. );*/ 54 /* >>chng 02 mar 31, put in max, crashed on some first iteration 55 * with negative optical depths, 56 * NB did not understand why neg optical depths started */ 57 aa = (realnum)SDIV(Transitions[ipH_LIKE][ipHYDROGEN][ipH2p][ipH1s].Emis->TauIn); 58 aa = pow( aa ,-0.75); 59 hydro.pestrk[ipH1s][ipH2p] = strkla/2.*MAX2(1.,aa); 65 /* coefficient for Ly alpha */ 66 /* first few factors resemble equation 13c...what about the rest? */ 67 strkla = 0.538*ah*4.*9.875*(phycon.sqrte/phycon.te10/phycon.te03); 60 68 61 /**\todo 2 - Stark is disabled for now since Lya escape causes density dependent 62 * feedback on the radiative transfer. Would need to redo the escape 63 * probs every time the electron density is updated - see blr89.in for an 64 * example */ 65 hydro.pestrk[ipH1s][ipH2p] = MIN2(.01,hydro.pestrk[ipH1s][ipH2p]); 66 hydro.pestrk[ipH1s][ipH2p] = 0.; 67 hydro.pestrk[ipH2p][ipH1s] = 68 hydro.pestrk[ipH1s][ipH2p]*Transitions[ipH_LIKE][ipHYDROGEN][ipH2p][ipH1s].Emis->Aul; 69 /* Lyman lines always have outer optical depths */ 70 /*ASSERT( Transitions[ipH_LIKE][ipHYDROGEN][ipH2p][ipH1s].TauIn> 0. );*/ 71 /* >>chng 02 mar 31, put in max, crashed on some first iteration 72 * with negative optical depths, 73 * NB did not understand why neg optical depths started */ 74 aa = (realnum)SDIV(Transitions[ipISO][nelem][iso.nLyaLevel[ipISO]][0].Emis->TauIn); 75 aa = pow( aa ,-0.75); 76 iso.pestrk[ipISO][nelem][0][iso.nLyaLevel[ipISO]] = strkla/2.*MAX2(1.,aa); 77 78 /**\todo 2 - Stark is disabled for now since Lya escape causes density dependent 79 * feedback on the radiative transfer. Would need to redo the escape 80 * probs every time the electron density is updated - see blr89.in for an 81 * example */ 82 iso.pestrk[ipISO][nelem][0][iso.nLyaLevel[ipISO]] = MIN2(.01,iso.pestrk[ipISO][nelem][0][iso.nLyaLevel[ipISO]]); 83 iso.pestrk[ipISO][nelem][0][iso.nLyaLevel[ipISO]] = 0.; 84 iso.pestrk[ipISO][nelem][iso.nLyaLevel[ipISO]][0] = 85 iso.pestrk[ipISO][nelem][0][iso.nLyaLevel[ipISO]]*Transitions[ipISO][nelem][iso.nLyaLevel[ipISO]][0].Emis->Aul; 69 86 70 87 71 /* >>chng 06 aug 28, from numLevels_max to _local. */72 for( ipHi=3; ipHi < iso.numLevels_local[ipH_LIKE][ipHYDROGEN]; ipHi++ )73 {74 if( Transitions[ipH_LIKE][ipHYDROGEN][ipHi][ipH1s].Emis == NULL )75 continue;88 /* >>chng 06 aug 28, from numLevels_max to _local. */ 89 for( ipHi=3; ipHi < iso.numLevels_local[ipISO][nelem]; ipHi++ ) 90 { 91 if( Transitions[ipISO][nelem][ipHi][ipH1s].Emis == NULL ) 92 continue; 76 93 77 hydro.pestrk[0][ipHi] = stark*hydro.strkar[0][ipHi]/2.*pow(MAX2(1.,78 Transitions[ipH_LIKE][ipHYDROGEN][ipHi][ipH1s].Emis->TauIn),-0.75);94 iso.pestrk[ipISO][nelem][0][ipHi] = stark*iso.strkar[ipISO][nelem][0][ipHi]/2.*pow(MAX2(1., 95 Transitions[ipISO][nelem][ipHi][ipH1s].Emis->TauIn),-0.75); 79 96 80 hydro.pestrk[0][ipHi] = MIN2(.01,hydro.pestrk[0][ipHi]);81 hydro.pestrk[ipHi][0] = Transitions[ipH_LIKE][ipHYDROGEN][ipHi][ipH1s].Emis->Aul*82 hydro.pestrk[0][ipHi];83 }97 iso.pestrk[ipISO][nelem][0][ipHi] = MIN2(.01,iso.pestrk[ipISO][nelem][0][ipHi]); 98 iso.pestrk[ipISO][nelem][ipHi][0] = Transitions[ipISO][nelem][ipHi][ipH1s].Emis->Aul* 99 iso.pestrk[ipISO][nelem][0][ipHi]; 100 } 84 101 85 /* zero out rates above iso.numLevels_local */86 for( ipHi=iso.numLevels_local[ipH_LIKE][ipHYDROGEN]; ipHi < iso.numLevels_max[ipH_LIKE][ipHYDROGEN]; ipHi++ )87 {88 hydro.pestrk[0][ipHi] = 0.;89 hydro.pestrk[ipHi][0] = 0.;90 }102 /* zero out rates above iso.numLevels_local */ 103 for( ipHi=iso.numLevels_local[ipISO][nelem]; ipHi < iso.numLevels_max[ipISO][nelem]; ipHi++ ) 104 { 105 iso.pestrk[ipISO][nelem][0][ipHi] = 0.; 106 iso.pestrk[ipISO][nelem][ipHi][0] = 0.; 107 } 91 108 92 /* all other lines */93 /* >>chng 06 aug 28, from numLevels_max to _local. */94 for( ipLo=ipH2s; ipLo < (iso.numLevels_local[ipH_LIKE][ipHYDROGEN] - 1); ipLo++ )95 {96 for( ipHi=ipLo + 1; ipHi < iso.numLevels_local[ipH_LIKE][ipHYDROGEN]; ipHi++ )97 {98 if( Transitions[ipH_LIKE][ipHYDROGEN][ipHi][ipLo].Emis == NULL )99 continue;109 /* all other lines */ 110 /* >>chng 06 aug 28, from numLevels_max to _local. */ 111 for( ipLo=ipH2s; ipLo < (iso.numLevels_local[ipISO][nelem] - 1); ipLo++ ) 112 { 113 for( ipHi=ipLo + 1; ipHi < iso.numLevels_local[ipISO][nelem]; ipHi++ ) 114 { 115 if( Transitions[ipISO][nelem][ipHi][ipLo].Emis == NULL ) 116 continue; 100 117 101 aa = stark*hydro.strkar[ipLo][ipHi]*102 pow(MAX2(1.,Transitions[ipH_LIKE][ipHYDROGEN][ipHi][ipLo].Emis->TauIn),-0.75);103 hydro.pestrk[ipLo][ipHi] =104 (realnum)MIN2(.01,aa);118 aa = stark*iso.strkar[ipISO][nelem][ipLo][ipHi]* 119 pow(MAX2(1.,Transitions[ipISO][nelem][ipHi][ipLo].Emis->TauIn),-0.75); 120 iso.pestrk[ipISO][nelem][ipLo][ipHi] = 121 (realnum)MIN2(.01,aa); 105 122 106 hydro.pestrk[ipHi][ipLo] = Transitions[ipH_LIKE][ipHYDROGEN][ipHi][ipLo].Emis->Aul* 107 hydro.pestrk[ipLo][ipHi]; 123 iso.pestrk[ipISO][nelem][ipHi][ipLo] = Transitions[ipISO][nelem][ipHi][ipLo].Emis->Aul* 124 iso.pestrk[ipISO][nelem][ipLo][ipHi]; 125 } 126 } 127 128 /* zero out rates above iso.numLevels_local */ 129 for( ipLo=(iso.numLevels_local[ipISO][nelem] - 1); ipLo<(iso.numLevels_max[ipISO][nelem] - 1); ipLo++ ) 130 { 131 for( ipHi=ipLo + 1; ipHi < iso.numLevels_max[ipISO][nelem]; ipHi++ ) 132 { 133 iso.pestrk[ipISO][nelem][ipLo][ipHi] = 0.; 134 iso.pestrk[ipISO][nelem][ipHi][ipLo] = 0.; 135 } 136 } 108 137 } 109 138 } 110 139 111 /* zero out rates above iso.numLevels_local */112 for( ipLo=(iso.numLevels_local[ipH_LIKE][ipHYDROGEN] - 1); ipLo<(iso.numLevels_max[ipH_LIKE][ipHYDROGEN] - 1); ipLo++ )113 {114 for( ipHi=ipLo + 1; ipHi < iso.numLevels_max[ipH_LIKE][ipHYDROGEN]; ipHi++ )115 {116 hydro.pestrk[ipLo][ipHi] = 0.;117 hydro.pestrk[ipHi][ipLo] = 0.;118 }119 }120 140 return; 121 141 }
