00001
00002
00003
00004
00005
00006
00007 #include "cddefines.h"
00008 #include "physconst.h"
00009 #include "taulines.h"
00010 #include "grains.h"
00011 #include "grainvar.h"
00012 #include "iso.h"
00013 #include "dense.h"
00014 #include "opacity.h"
00015 #include "trace.h"
00016 #include "coolheavy.h"
00017 #include "rfield.h"
00018 #include "phycon.h"
00019 #include "hmi.h"
00020 #include "radius.h"
00021 #include "atmdat.h"
00022 #include "heavy.h"
00023 #include "atomfeii.h"
00024 #include "lines_service.h"
00025 #include "h2.h"
00026 #include "ipoint.h"
00027 #include "rt.h"
00028
00029 #define TwoS (1+ipISO)
00030
00031 #if defined (__ICC) && defined(__ia64) && __INTEL_COMPILER < 910
00032 #pragma optimization_level 0
00033 #endif
00034 void RT_diffuse(void)
00035 {
00036
00037
00038 static long lgPrt2PhtEmisCoef = false;
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048 static realnum *DiffuseEscape;
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066 static bool lgMustInit=true;
00067
00068 long int i=-100000,
00069 ip=-100000,
00070 ipISO=-100000,
00071 ipHi=-100000,
00072 ipLo=-100000,
00073 ipla=-100000,
00074 nelem=-100000,
00075 ion=-100000,
00076 limit=-100000,
00077 n=-100000,
00078 nu=-10000;
00079
00080 double EnergyLimit;
00081
00082 double EdenAbund,
00083 difflya,
00084 xInWrd,
00085 arg,
00086 fac,
00087 factor,
00088 gamma,
00089 gion,
00090 gn,
00091 photon,
00092 sum,
00093 Sum1level,
00094 SumCaseB;
00095
00096 realnum Dilution , two_photon_emiss;
00097
00098 DEBUG_ENTRY( "RT_diffuse()" );
00099
00100
00101 if( lgMustInit )
00102 {
00103 lgMustInit = false;
00104 DiffuseEscape = (realnum*)MALLOC((unsigned)rfield.nupper*sizeof(realnum));
00105 }
00106
00107
00108
00109 ASSERT(rfield.nflux < rfield.nupper );
00110
00111
00112
00113 memset(DiffuseEscape , 0 , (unsigned)rfield.nupper*sizeof(realnum) );
00114 memset(rfield.ConEmitLocal[nzone] , 0 , (unsigned)rfield.nupper*sizeof(realnum) );
00115 memset(rfield.ConOTS_local_photons , 0 , (unsigned)rfield.nupper*sizeof(realnum) );
00116 memset(rfield.TotDiff2Pht , 0 , (unsigned)rfield.nupper*sizeof(realnum) );
00117
00118
00119
00120 if( lgAbort )
00121 {
00122
00123 return;
00124 }
00125
00126
00127
00128 for( ipISO=ipH_LIKE; ipISO<NISO; ++ipISO )
00129 {
00130
00131 for( nelem=ipISO; nelem < LIMELM; nelem++ )
00132 {
00133
00134 SumCaseB = 0.;
00135
00136
00137 EdenAbund = dense.eden*dense.xIonDense[nelem][nelem+1-ipISO];
00138
00139
00140
00141 if( dense.IonHigh[nelem] >= nelem+1-ipISO )
00142 {
00143
00144
00145
00146
00147 ipHi = rfield.nflux;
00148
00149 for( n=0; n < iso.numLevels_local[ipISO][nelem]; n++ )
00150 {
00151 Sum1level = 0.;
00152
00153
00154
00155
00157
00158 gamma = 0.5*MILNE_CONST*StatesElem[ipISO][nelem][n].g/iso.stat_ion[ipISO]/phycon.te/phycon.sqrte;
00159
00160
00161
00162
00163 for( nu=iso.ipIsoLevNIonCon[ipISO][nelem][n]-1; nu < ipHi; nu++ )
00164 {
00165
00166
00167 double dwid = 0.2;
00168
00169
00170
00171 arg = (rfield.anu[nu]-iso.xIsoLevNIonRyd[ipISO][nelem][n]+
00172 rfield.widflx[nu]*dwid)/phycon.te_ryd;
00173 arg = MAX2(0.,arg);
00174
00175
00176 if( arg > SEXP_LIMIT )
00177 break;
00178
00179
00180 photon = gamma*exp(-arg)*rfield.widflx[nu]*
00181 opac.OpacStack[ nu-iso.ipIsoLevNIonCon[ipISO][nelem][n] + iso.ipOpac[ipISO][nelem][n] ] *
00182 rfield.anu2[nu];
00183
00184
00185 Sum1level += photon;
00186
00187 rfield.ConEmitLocal[nzone][nu] += (realnum)(photon*EdenAbund);
00188
00189
00190 DiffuseEscape[nu] +=
00191 (realnum)(photon*EdenAbund*iso.RadRecomb[ipISO][nelem][n][ipRecEsc]);
00192 }
00193
00194 if( n > 0 )
00195 {
00196
00197 SumCaseB += Sum1level;
00198 }
00199
00200
00201
00202
00203
00204
00205 ipHi = iso.ipIsoLevNIonCon[ipISO][nelem][0]-1;
00206 }
00207
00208 iso.CaseBCheck[ipISO][nelem] = MAX2(iso.CaseBCheck[ipISO][nelem],
00209 (realnum)(SumCaseB/iso.RadRec_caseB[ipISO][nelem]));
00210
00211
00212
00213
00214 for( ipLo=0; ipLo < (iso.numLevels_local[ipISO][nelem] - 2); ipLo++ )
00215 {
00216
00217 for( ipHi=ipLo+1; ipHi < iso.numLevels_local[ipISO][nelem] - 1; ipHi++ )
00218 {
00219
00220
00221 if( Transitions[ipISO][nelem][ipHi][ipLo].ipCont < 1 )
00222 continue;
00223
00224
00225 ip = Transitions[ipISO][nelem][ipHi][ipLo].ipCont-1;
00226
00227
00228
00229 Transitions[ipISO][nelem][ipHi][ipLo].Emis->phots =
00230 Transitions[ipISO][nelem][ipHi][ipLo].Emis->Aul*
00231 StatesElem[ipISO][nelem][ipHi].Pop*
00232 Transitions[ipISO][nelem][ipHi][ipLo].Emis->Pesc*
00233 dense.xIonDense[nelem][nelem+1-ipISO];
00234
00235
00236 xInWrd = Transitions[ipISO][nelem][ipHi][ipLo].Emis->phots*
00237 Transitions[ipISO][nelem][ipHi][ipLo].Emis->FracInwd;
00238
00239
00240 rfield.reflin[ip] += (realnum)(xInWrd*radius.BeamInIn);
00241
00242
00243
00244
00245
00246 rfield.outlin[ip] += (realnum)(xInWrd*radius.BeamInOut*opac.tmn[ip]
00247 );
00248
00249
00250 rfield.outlin[ip] +=
00251 (realnum)(Transitions[ipISO][nelem][ipHi][ipLo].Emis->phots*
00252 (1. - Transitions[ipISO][nelem][ipHi][ipLo].Emis->FracInwd)*
00253 radius.BeamOutOut*opac.tmn[ip]
00254 );
00255 }
00256 }
00257
00258
00259
00260
00261
00262 ASSERT( ipISO <= ipHE_LIKE );
00263
00264
00265 EnergyLimit = Transitions[ipISO][nelem][TwoS][0].EnergyWN/RYD_INF;
00266
00267
00268 ASSERT( iso.ipTwoPhoE[ipISO][nelem]>0 && EnergyLimit>0. );
00269
00270 sum = 0.;
00271
00272
00273 for( nu=0; nu<iso.ipTwoPhoE[ipISO][nelem]; nu++ )
00274 {
00275
00276
00277 ASSERT( rfield.anu[nu]/EnergyLimit < 1.01 || rfield.anu[nu-1]<EnergyLimit);
00278
00279
00280
00281
00282 sum += iso.As2nu[ipISO][nelem][nu];
00283
00284
00285 const bool lgDo2TripSToo = false;
00286
00287 if( ipISO == ipHE_LIKE && lgDo2TripSToo )
00288 {
00289 two_photon_emiss = 2.f*dense.xIonDense[nelem][nelem+1-ipISO]*iso.As2nu[ipISO][nelem][nu]*
00290 ((realnum)StatesElem[ipISO][nelem][TwoS].Pop+0.0001f*(realnum)StatesElem[ipISO][nelem][ipHe2s3S].Pop);
00291 }
00292 else
00293 {
00294
00295
00296
00297
00298 two_photon_emiss = 2.f*(realnum)StatesElem[ipISO][nelem][TwoS].Pop*dense.xIonDense[nelem][nelem+1-ipISO]
00299 *iso.As2nu[ipISO][nelem][nu];
00300 }
00301
00302
00303
00304
00305
00306 if( iso.lgInd2nu_On)
00307 {
00308
00309 two_photon_emiss *= (1.f + rfield.SummedOcc[nu]) *
00310 (1.f+rfield.SummedOcc[iso.ipSym2nu[ipISO][nelem][nu]-1]);
00311 }
00312
00313
00314 rfield.TotDiff2Pht[nu] += two_photon_emiss;
00315
00316
00317 rfield.ConEmitLocal[nzone][nu] += two_photon_emiss;
00318
00319
00320
00321 DiffuseEscape[nu] += two_photon_emiss*opac.ExpmTau[nu];
00322
00323
00324
00325 rfield.ConOTS_local_photons[nu] += two_photon_emiss*(1.f - opac.ExpmTau[nu]);
00326 }
00327
00328
00329
00330 ASSERT( fabs( 1.f - (realnum)sum/Transitions[ipISO][nelem][TwoS][0].Emis->Aul ) < 0.01f );
00331 }
00332
00333
00334 if( lgPrt2PhtEmisCoef )
00335 {
00336 long yTimes20;
00337 double y, E2nu;
00338
00339 lgPrt2PhtEmisCoef = false;
00340
00341 fprintf( ioQQQ, "\ny\tGammaNot(2q)\n");
00342
00343 for( yTimes20=1; yTimes20<=10; yTimes20++ )
00344 {
00345 y = yTimes20/20.;
00346
00347 fprintf( ioQQQ, "%.3e\t", (double)y );
00348
00349 E2nu = Transitions[0][0][1][0].EnergyWN/RYD_INF;
00350 i = ipoint(y*E2nu);
00351 fprintf( ioQQQ, "%.3e\t",
00352 8./3.*HPLANCK*StatesElem[0][0][1].Pop/dense.eden
00353 *y*iso.As2nu[0][0][i]*E2nu/rfield.widflx[i] );
00354
00355 E2nu = Transitions[1][1][2][0].EnergyWN/RYD_INF;
00356 i = ipoint(y*E2nu);
00357 fprintf( ioQQQ, "%.3e\n",
00358 8./3.*HPLANCK*StatesElem[1][1][2].Pop/dense.eden
00359 *y*iso.As2nu[1][1][i]*E2nu/rfield.widflx[i] );
00360
00361
00362
00363
00364
00365
00366
00367 }
00368 fprintf( ioQQQ, "eden%.3e\n", dense.eden );
00369 }
00370 }
00371 }
00372
00373
00374 for( nelem=NISO; nelem < LIMELM; nelem++ )
00375 {
00376
00377
00378 for( ion=dense.IonLow[nelem]; ion < nelem-NISO+1; ion++ )
00379 {
00380 if( dense.xIonDense[nelem][ion+1] > 0. )
00381 {
00382 long int ns, nshell,igRec , igIon,
00383 iplow , iphi , ipop;
00384
00385 ip = Heavy.ipHeavy[nelem][ion]-1;
00386 ASSERT( ip >= 0 );
00387
00388
00389
00390
00391
00392
00393
00394
00395
00396 if( ip >= rfield.nflux )
00397 continue;
00398
00399
00400 atmdat_outer_shell( nelem+1 , nelem+1-ion , &nshell, &igRec , &igIon );
00401 gn = (double)igRec;
00402 gion = (double)igIon;
00403
00404
00405 ns = Heavy.nsShells[nelem][ion]-1;
00406 ASSERT( ns == (nshell-1) );
00407
00408
00409 iplow = opac.ipElement[nelem][ion][ns][0]-1;
00410 iphi = opac.ipElement[nelem][ion][ns][1];
00411 iphi = MIN2( iphi , rfield.nflux );
00412 ipop = opac.ipElement[nelem][ion][ns][2];
00413
00414
00415 ipop = ipop - iplow;
00416
00417 gamma = 0.5*MILNE_CONST*gn/gion/phycon.te/phycon.sqrte*dense.eden*dense.xIonDense[nelem][ion+1];
00418
00419
00420 if( rfield.ContBoltz[iplow] > SMALLFLOAT )
00421 {
00422 for( nu=iplow; nu < iphi; ++nu )
00423 {
00424 photon = gamma*rfield.ContBoltz[nu]/rfield.ContBoltz[iplow]*
00425 rfield.widflx[nu]*opac.OpacStack[nu+ipop]*rfield.anu2[nu];
00426
00431 rfield.ConEmitLocal[nzone][nu] += (realnum)photon;
00432
00433
00434 DiffuseEscape[nu] += (realnum)photon*opac.ExpmTau[nu];
00435 }
00436 }
00437
00438
00439 ipla = Heavy.ipLyHeavy[nelem][ion]-1;
00440 ASSERT( ipla >= 0 );
00441
00442 difflya = Heavy.xLyaHeavy[nelem][ion]*dense.xIonDense[nelem][ion+1];
00443
00444 rfield.outlin_noplot[ipla] += (realnum)(difflya*radius.dVolOutwrd*opac.tmn[ipla]*opac.ExpmTau[ipla]);
00445
00446
00447 ipla = Heavy.ipBalHeavy[nelem][ion]-1;
00448 ASSERT( ipla >= 0 );
00449
00450 difflya = Heavy.xLyaHeavy[nelem][ion]*dense.xIonDense[nelem][ion+1];
00451 rfield.outlin_noplot[ipla] += (realnum)(difflya*radius.dVolOutwrd*opac.tmn[ipla]*opac.ExpmTau[ipla]);
00452 }
00453 }
00454 }
00455
00456
00457 limit = MIN2( rfield.ipMaxBolt , rfield.nflux );
00458 for( nu=0; nu < limit; nu++ )
00459 {
00460 double TotBremsAllIons = 0., BremsThisIon;
00461
00462
00463 nelem = ipHYDROGEN;
00464 ion = 1;
00465 BremsThisIon = POW2( (realnum)ion )*dense.xIonDense[nelem][ion]*rfield.gff[ion][nu];
00466 ASSERT( BremsThisIon >= 0. );
00467
00468
00469
00470 BremsThisIon *= (1.+opac.OpacStack[nu-1+opac.iphmra]*StatesElem[ipH_LIKE][ipHYDROGEN][ipH1s].Pop);
00471 TotBremsAllIons = BremsThisIon;
00472
00473
00474
00475 for( nelem=ipHELIUM; nelem < LIMELM; nelem++ )
00476 {
00477
00478
00479 for( ion=MAX2(1,dense.IonLow[nelem]); ion<=dense.IonHigh[nelem]; ++ion )
00480 {
00481
00482 BremsThisIon = POW2( (realnum)ion )*dense.xIonDense[nelem][ion]*rfield.gff[ion][nu];
00483
00484
00485 TotBremsAllIons += BremsThisIon;
00486 }
00487 }
00488
00490
00491 TotBremsAllIons *= dense.eden*1.032e-11*rfield.widflx[nu]*rfield.ContBoltz[nu]/rfield.anu[nu]/phycon.sqrte *
00492 CoolHeavy.lgFreeOn;
00493 ASSERT( TotBremsAllIons >= 0.);
00494
00495
00496
00497
00498
00499
00500
00501 if( nu >= rfield.ipEnergyBremsThin )
00502 {
00503
00504
00505
00506
00507
00508
00509 rfield.ConEmitLocal[nzone][nu] += (realnum)TotBremsAllIons;
00510
00511
00512
00513
00514
00515
00516
00517 DiffuseEscape[nu] += (realnum)TotBremsAllIons;
00518 }
00519 }
00520
00521
00522
00523 if( gv.lgDustOn && gv.lgGrainPhysicsOn )
00524 {
00525
00526
00527 GrainMakeDiffuse();
00528
00529 for( nu=0; nu < rfield.nflux; nu++ )
00530 {
00531 rfield.ConEmitLocal[nzone][nu] += gv.GrainEmission[nu];
00532 DiffuseEscape[nu] += gv.GrainEmission[nu];
00533 }
00534 }
00535
00536
00537 fac = dense.eden*(double)dense.xIonDense[ipHYDROGEN][0];
00538 gn = 1.;
00539 gion = 2.;
00540 gamma = 0.5*MILNE_CONST*gn/gion/phycon.te/phycon.sqrte;
00541
00542 limit = MIN2(iso.ipIsoLevNIonCon[ipH_LIKE][ipHYDROGEN][ipH1s]-1,rfield.nflux);
00543
00544 if( rfield.ContBoltz[hmi.iphmin-1] > 0. )
00545 {
00546 for( nu=hmi.iphmin-1; nu < limit; nu++ )
00547 {
00548
00549
00550 factor = gamma*rfield.ContBoltz[nu]/rfield.ContBoltz[hmi.iphmin-1]*rfield.widflx[nu]*
00551 opac.OpacStack[nu-hmi.iphmin+opac.iphmop]*
00552 rfield.anu2[nu]*fac;
00553 rfield.ConEmitLocal[nzone][nu] += (realnum)factor;
00554 DiffuseEscape[nu] += (realnum)factor;
00555 }
00556 }
00557 else
00558 {
00559 for( nu=hmi.iphmin-1; nu < limit; nu++ )
00560 {
00561 arg = MAX2(0.,TE1RYD*(rfield.anu[nu]-0.05544)/phycon.te);
00562
00563 if( arg > SEXP_LIMIT )
00564 break;
00565
00566
00567 factor = gamma*exp(-arg)*rfield.widflx[nu]*
00568 opac.OpacStack[nu-hmi.iphmin+opac.iphmop]*
00569 rfield.anu2[nu]*fac;
00570 rfield.ConEmitLocal[nzone][nu] += (realnum)factor;
00571 DiffuseEscape[nu] += (realnum)factor;
00572 }
00573 }
00574
00575
00576
00577 Dilution = (realnum)POW2( radius.rinner / (radius.Radius-radius.drad/2.) );
00578
00579
00580
00581
00582
00583
00584
00585 rfield.ConEmitLocal[nzone][rfield.nflux] = 1.e-10f * Dilution;
00586 DiffuseEscape[rfield.nflux] = 1.e-10f * Dilution;
00587
00588
00589 ASSERT( opac.opacity_abs[rfield.nflux] == 0. );
00590
00591
00592
00593
00594
00595
00596
00597
00598
00599
00600
00601
00602
00603
00604
00605
00606
00607
00608
00609
00610 for( nu=rfield.ipPlasma-1; nu <= rfield.nflux; nu++ )
00611 {
00612
00613
00614
00615
00616 rfield.ConInterOut[nu] += DiffuseEscape[nu]*(realnum)radius.dVolOutwrd;
00617
00618 ASSERT( rfield.ConInterOut[nu] >= 0.);
00619 }
00620
00621 {
00622
00623 enum {DEBUG_LOC=false};
00624
00625 if( DEBUG_LOC )
00626 {
00627 fprintf(ioQQQ,"rtdiffusedebugg %li\t%.2e\t%.2e\t%.2e\n",
00628 nzone, rfield.ConInterOut[1158] , DiffuseEscape[1158],radius.dVolOutwrd);
00629 }
00630 }
00631
00632
00633 for( i=1; i <= nLevel1; i++ )
00634 {
00635 outline( &TauLines[i] );
00636 }
00637
00638 for( ipISO = ipHE_LIKE; ipISO < NISO; ipISO++ )
00639 {
00640 for( nelem = ipISO; nelem < LIMELM; nelem++ )
00641 {
00642 if( dense.lgElmtOn[nelem] )
00643 {
00644 for( i=0; i<iso.numLevels_max[ipISO][nelem]; i++ )
00645 {
00646
00647 SatelliteLines[ipISO][nelem][i].Emis->phots =
00648 SatelliteLines[ipISO][nelem][i].Emis->Aul*
00649 SatelliteLines[ipISO][nelem][i].Hi->Pop*
00650 SatelliteLines[ipISO][nelem][i].Emis->Pesc*
00651 dense.xIonDense[nelem][nelem+1-ipISO];
00652
00653 outline( &SatelliteLines[ipISO][nelem][i] );
00654 }
00655 }
00656 }
00657 }
00658
00659
00660 for( i=0; i < nWindLine; i++ )
00661 {
00662
00663
00664 if( TauLine2[i].Hi->IonStg < TauLine2[i].Hi->nelem+1-NISO )
00665 {
00666 {
00667
00668 enum {DEBUG_LOC=false};
00669
00670 if( DEBUG_LOC && i==4821 )
00671 {
00672
00673 fprintf(ioQQQ,"DEBUG dump lev2 line %li\n", i );
00674 DumpLine( &TauLine2[i] );
00675 fprintf(ioQQQ,"DEBUG dump %.3e %.3e %.3e\n",
00676 rfield.outlin[TauLine2[i].ipCont-1],
00677 TauLine2[i].Emis->phots*TauLine2[i].Emis->FracInwd*radius.BeamInOut*opac.tmn[i]*TauLine2[i].Emis->ColOvTot,
00678 TauLine2[i].Emis->phots*(1. - TauLine2[i].Emis->FracInwd)*radius.BeamOutOut* TauLine2[i].Emis->ColOvTot );
00679 }
00680 }
00681 outline( &TauLine2[i] );
00682
00683
00684 }
00685 }
00686
00687
00688 for( i=0; i < nHFLines; i++ )
00689 {
00690 outline( &HFLines[i] );
00691 }
00692
00693
00694 for( i=0; i < linesAdded2; i++ )
00695 {
00696 outline( atmolEmis[i].tran );
00697 }
00698
00699
00700 for( i=0; i < nCORotate; i++ )
00701 {
00702 outline( &C12O16Rotate[i] );
00703 outline( &C13O16Rotate[i] );
00704 }
00705
00706
00707 H2_RT_diffuse();
00708
00709
00710 FeII_RT_Out();
00714 if( trace.lgTrace )
00715 fprintf( ioQQQ, " RT_diffuse returns.\n" );
00716
00717
00718 for( nu=0; nu<rfield.ipPlasma-1; nu++ )
00719 {
00720 rfield.flux_beam_const[nu] = 0.;
00721 rfield.flux_beam_time[nu] = 0.;
00722 rfield.flux_isotropic[nu] = 0.;
00723 rfield.flux[nu] = 0.;
00724 rfield.ConEmitLocal[nzone][nu] = 0.;
00725 rfield.otscon[nu] =0.;
00726 rfield.otslin[nu] =0.;
00727 rfield.outlin[nu] =0.;
00728 rfield.outlin_noplot[nu] =0.;
00729 rfield.reflin[nu] = 0.;
00730 rfield.TotDiff2Pht[nu] = 0.;
00731 rfield.ConOTS_local_photons[nu] = 0.;
00732 rfield.ConInterOut[nu] = 0.;
00733 }
00734
00735
00736 for( nu=0; nu < rfield.nflux; nu++ )
00737 {
00738
00739
00740 rfield.OccNumbDiffCont[nu] = rfield.ConEmitLocal[nzone][nu]*rfield.convoc[nu];
00741
00742
00743 ASSERT( rfield.flux_beam_const[nu] >= 0.);
00744 ASSERT( rfield.flux_beam_time[nu] >= 0.);
00745 ASSERT( rfield.flux_isotropic[nu] >= 0.);
00746 ASSERT( rfield.flux[nu] >=0.);
00747 ASSERT( rfield.ConEmitLocal[nzone][nu] >= 0.);
00748 ASSERT( rfield.otscon[nu] >=0.);
00749 ASSERT( rfield.otslin[nu] >=0.);
00750 ASSERT( rfield.outlin[nu] >=0.);
00751 ASSERT( rfield.outlin_noplot[nu] >=0.);
00752 ASSERT( rfield.reflin[nu] >= 0.);
00753 ASSERT( rfield.TotDiff2Pht[nu] >= 0.);
00754 ASSERT( rfield.ConOTS_local_photons[nu] >= 0.);
00755 ASSERT( rfield.ConInterOut[nu] >=0.);
00756 }
00757
00758
00759 if( rfield.lgKillOutLine )
00760 {
00761 for( nu=0; nu < rfield.nflux; nu++ )
00762 {
00763 rfield.outlin[nu] = 0.;
00764 rfield.outlin_noplot[nu] = 0.;
00765 }
00766 }
00767
00768
00769 if( rfield.lgKillOutCont )
00770 {
00771 for( nu=0; nu < rfield.nflux; nu++ )
00772 {
00773 rfield.ConInterOut[nu] = 0.;
00774 }
00775 }
00776 return;
00777 }