200 ASSERT( ipLoEnergy >= 0 );
201 ASSERT( ipLoEnergy < ipHiEnergy );
203 ASSERT( nEnergy == (ipHiEnergy-ipLoEnergy+1) );
208 const realnum *trans_coef_total =
rfield.getCoarseTransCoef();
210 for(
long i = 0; i < nEnergy; i++ )
212 long j = ipLoEnergy + i;
234 ReturnedSpectrum[i] = flxatt + conem + flxref;
236 else if( nOption == 1 )
239 ReturnedSpectrum[i] =
rfield.flux_total_incident[0][j];
241 else if( nOption == 2 )
245 ReturnedSpectrum[i] =
rfield.flux[0][j]*
248 else if( nOption == 3 )
251 ReturnedSpectrum[i] =
rfield.ConRefIncid[0][j];
253 else if( nOption == 4 )
258 ReturnedSpectrum[i] = (
rfield.outlin[0][j]+
rfield.ConEmitOut[0][j])*refac;
260 else if( nOption == 5 )
272 ReturnedSpectrum[i] = (
rfield.reflin[0][j]+
rfield.ConEmitReflec[0][j])*refac;
274 else if( nOption == 6 )
279 ReturnedSpectrum[i] =
rfield.outlin[0][j]*refac;
281 else if( nOption == 7 )
293 ReturnedSpectrum[i] =
rfield.reflin[0][j]*refac;
295 else if( nOption == 8 )
300 ReturnedSpectrum[i] = (
rfield.ConEmitOut[0][j]+
rfield.outlin[0][j])*refac
303 else if( nOption == 9 )
306 ReturnedSpectrum[i] =
rfield.ConRefIncid[0][j] +
rfield.ConEmitReflec[0][j] +
309 else if( nOption == 10 )
314 ReturnedSpectrum[i] =
opac.ExpmTau[j]*trans_coef_total[j];
318 fprintf(
ioQQQ,
" cdSPEC called with impossible nOption (%i)\n", nOption);
322 ASSERT( ReturnedSpectrum[i] >=0.f );
void cdSPEC2(int nOption, long int nEnergy, long ipLoEnergy, long ipHiEnergy, realnum ReturnedSpectrum[])