35 bool lgPescUpdate =
conv.lgFirstSweepThisZone ||
conv.lgIonStageTrimed;
40 fprintf(
ioQQQ,
" RT_line_all called\n" );
44 if( !
rfield.lgDoLineTrans &&
conv.nPres2Ioniz )
51 if(
conv.lgLastSweepThisZone )
59 rfield.ipFineConVelShift = -(
long int)( dVel/
rfield.fine_opac_velocity_width + 0.5 );
72 rfield.ipFineConVelShift = -(
long int)(dWind /
rfield.fine_opac_velocity_width+0.5);
83 ipISO = 0; nelem = 0;ipLo = 0;
85 dTau =
iso_sp[ipISO][nelem].trans(ipHi,ipLo).Emis().PopOpc() *
86 iso_sp[ipISO][nelem].trans(ipHi,ipLo).Emis().opacity() /
88 dTau *=
radius.drad_x_fillfac;
89 aa = log(1. + dTau ) /
SDIV(dTau);
90 fprintf(
ioQQQ,
"DEBUG dTau\t%.2f\t%.5e\t%.5e\t%.5e\n",
fnzone,dTau,
105 for( nelem=ipISO; nelem <
LIMELM; ++nelem )
112 if( !
dense.lgElmtOn[nelem] )
115 if( ion <=
dense.IonHigh[nelem] )
118 for( ipHi=1; ipHi <
iso_sp[ipISO][nelem].numLevels_local; ++ipHi )
120 for( ipLo=0; ipLo < ipHi; ++ipLo )
124 if(
iso_sp[ipISO][nelem].trans(ipHi,ipLo).ipCont() < 0 )
135 enum {DEBUG_LOC=
false};
136 if( DEBUG_LOC && nelem==1&& ipLo==0 )
138 fprintf(
ioQQQ,
"DEBUG pdest\t%3li\t%.2f\t%.3e\n",
141 iso_sp[ipISO][nelem].trans(ipHi,ipLo).Emis().Pdest());
148 if(
opac.lgCaseB_no_pdest )
152 for( ipHi=ipLo+1; ipHi <
iso_sp[ipISO][nelem].numLevels_max; ++ipHi )
154 if(
iso_sp[ipISO][nelem].trans(ipHi,ipLo).ipCont() <= 0 )
166 if(
dense.xIonDense[nelem][ion] > 1e-30 && (
conv.lgFirstSweepThisZone ||
conv.lgLastSweepThisZone ) )
168 for( ipHi=
iso_sp[ipISO][nelem].st[
iso_sp[ipISO][nelem].numLevels_local-1].n()+1; ipHi <
iso_ctrl.nLyman[ipISO]; ipHi++ )
172 (*tr).Emis().PopOpc() =
iso_sp[ipISO][nelem].st[0].Pop();
173 (*(*tr).Lo()).Pop() =
174 iso_sp[ipISO][nelem].st[ipLo].Pop();
210 if( !
hydro.lgLymanPumping )
215 for( ipHi=ipLo+1; ipHi <
iso_sp[ipISO][nelem].numLevels_max; ++ipHi )
217 iso_sp[ipISO][nelem].trans(ipHi,ipLo).Emis().pump() = 0.;
223 enum {DEBUG_LOC=
false};
224 if( DEBUG_LOC &&
nzone>433 )
248 static realnum P_elec_esc_ipTFe56;
260 for(
long ipSpecies=0; ipSpecies<
nSpecies; ipSpecies++ )
268 int ipHi = (*tr).ipHi();
271 if( (*tr).ipCont() > 0 )
282 if(
conv.lgFirstSweepThisZone ||
conv.lgLastSweepThisZone )
284 for( i=0; i <
nUTA; i++ )
300 for( nelem=ipISO; nelem<
LIMELM; ++nelem )
304 for( ipLo=0; ipLo <
iso_sp[ipISO][nelem].numLevels_local; ++ipLo )
315 (*diatom)->H2_RTMake( );