74 fprintf(
ioQQQ,
" Energy, flux, OTS:\n" );
75 for(
long i=0; i <
rfield.nflux; i++ )
77 fprintf(
ioQQQ,
"%6ld%10.2e%10.2e%10.2e", i,
rfield.anu[i],
81 fprintf(
ioQQQ,
"\n" );
86 bool lgFlxNeg =
false;
87 for(
long i=0; i <
rfield.nflux; i++ )
89 if(
rfield.flux[0][i] < 0. )
91 fprintf(
ioQQQ,
" radius_increment finds negative intensity in flux.\n" );
92 fprintf(
ioQQQ,
" Intensity, frequency, pointer=%11.3e%11.3e%6ld\n",
96 if(
rfield.otscon[i] < 0. )
98 fprintf(
ioQQQ,
" radius_increment finds negative intensity in otscon.\n" );
99 fprintf(
ioQQQ,
" Intensity, frequency, pointer=%11.3e%11.3e%6ld\n",
103 if(
opac.tmn[i] < 0. )
105 fprintf(
ioQQQ,
" radius_increment finds negative tmn.\n" );
106 fprintf(
ioQQQ,
" value, frequency, pointer=%11.3e%11.3e%6ld %4.4s\n",
110 if(
rfield.otslin[i] < 0. )
112 fprintf(
ioQQQ,
" radius_increment finds negative intensity in otslin.\n" );
113 fprintf(
ioQQQ,
" Intensity, frequency, pointer=%11.3e%11.3e%6ld %4.4s\n",
117 if(
rfield.outlin[0][i] < 0. )
119 fprintf(
ioQQQ,
" radius_increment finds negative intensity in outlin.\n" );
120 fprintf(
ioQQQ,
" Intensity, frequency, pointer=%11.3e%11.3e%6ld %4.4s\n",
124 if(
rfield.ConInterOut[i] < 0. )
126 fprintf(
ioQQQ,
" radius_increment finds negative intensity in ConInterOut.\n" );
127 fprintf(
ioQQQ,
" Intensity, frequency, pointer=%11.3e%11.3e%6ld %4.4s\n",
131 if(
opac.opacity_abs[i] < 0. )
133 opac.lgOpacNeg =
true;
141 fprintf(
ioQQQ,
" Insanity has occurred, this is zone%4ld\n",
154 rfield.EnergyIncidCont = 0.;
155 rfield.EnergyDiffCont = 0.;
163 for(
long i=0; i <
rfield.nflux; i++ )
165 double dTau_abs =
opac.opacity_abs[i]*
radius.drad_x_fillfac;
166 double dTau_sct =
opac.opacity_sct[i]*
radius.drad_x_fillfac;
177 opac.TauTotalGeo[0][i] =
opac.TauAbsGeo[0][i] +
opac.TauScatGeo[0][i];
189 ASSERT(
opac.E2TauAbsFace[i] <= 1. &&
opac.E2TauAbsFace[i] >= 0. );
201 double AttenuationDilutionFactor =
opac.ExpZone[i]*DilutionHere;
202 ASSERT( AttenuationDilutionFactor <= 1.0 );
205 rfield.flux_beam_const[i] *= (
realnum)AttenuationDilutionFactor;
206 rfield.flux_beam_time[i] *= (
realnum)AttenuationDilutionFactor;
207 rfield.flux_isotropic[i] *= (
realnum)AttenuationDilutionFactor;
216 rfield.outlin_noplot[i] *= (
realnum)AttenuationDilutionFactor;
225 rfield.ConEmitOut[0][i] *= (
realnum)AttenuationDilutionFactor;
272 if( fabs( tau_effec - tau_true ) /
MAX2(tau_effec , tau_true) > 0.01 &&
280 " PROBLEM radius_increment Lyman continuum insanity zone %li, effective tau=%g, atomic tau=%g simple tau=%g\n",
292 for(
long i=0; i <
rfield.nflux; i++ )
296 double AttenuationScatteringFactor = 1./(1. +
radius.drad_x_fillfac*
opac.opacity_sct[i]);
297 ASSERT( AttenuationScatteringFactor <= 1.0 );
298 rfield.flux_beam_const[i] *= (
realnum)AttenuationScatteringFactor;
299 rfield.flux_beam_time[i] *= (
realnum)AttenuationScatteringFactor;
300 rfield.flux_isotropic[i] *= (
realnum)AttenuationScatteringFactor;
304 rfield.ConInterOut[i] *= (
realnum)AttenuationScatteringFactor;
305 rfield.ConEmitOut[0][i] *= (
realnum)AttenuationScatteringFactor;
307 rfield.outlin_noplot[i] *= (
realnum)AttenuationScatteringFactor;
322 rfield.DiffuseEscape[
rfield.nflux] = 1.e-10f * Dilution;
334 if(
hextra.lgNeutrnHeatOn )
349 double Reflec_Diffuse_Cont;
354 if(
opac.TauAbsGeo[0][i] < 30. )
358 Reflec_Diffuse_Cont =
rfield.ConEmitLocal[
nzone][i]/2.*
362 rfield.ConEmitReflec[0][i] += (
realnum)(Reflec_Diffuse_Cont);