45 if( strcmp(
rfield.chDffTrns,
"OSS") == 0 )
48 if(
rfield.anu[ip] > 0.99 )
58 else if( strcmp(
rfield.chDffTrns,
"OTS") == 0 )
60 tin =
opac.TauAbsGeo[0][ip-1];
71 tout =
opac.TauAbsGeo[1][ip-1] - tin;
81 escout =
esccon(tout,hnukt);
87 receff_v = 0.5*(escin + escout);
95 escout =
esccon(tin*0.05,hnukt);
96 receff_v = 0.5*(escin + escout);
104 else if( strcmp(
rfield.chDffTrns,
"OU1") == 0 )
106 receff_v =
opac.ExpZone[ip+1];
108 else if( strcmp(
rfield.chDffTrns,
"OU2") == 0 )
112 receff_v =
opac.E2TauAbsFace[ip+1];
114 else if( strcmp(
rfield.chDffTrns,
"OU3") == 0 )
118 else if( strcmp(
rfield.chDffTrns,
"OU4") == 0 )
122 if(
rfield.ContBoltz[ip-1] > 0. )
128 while(
rfield.ContBoltz[i-1] > 0. &&
133 denom +=
rfield.ContBoltz[i-1];
136 receff_v = sum/denom;
140 receff_v =
opac.tmn[ip-1];
144 else if( strcmp(
rfield.chDffTrns,
"SOB") == 0 )
146 long int ipRecombEdgeFine =
rfield.ipnt_coarse_2_fine[ip];
147 double OpacityEffective, EffectiveThickness;
151 if( ipRecombEdgeFine>=0 && ipRecombEdgeFine<
rfield.nfine &&
rfield.lgOpacityFine )
156 OpacityEffective =
rfield.fine_opac_zone[ipRecombEdgeFine];
160 OpacityEffective =
opac.opacity_abs[ip];
172 EffectiveThickness = width_to_shift / dvdr;
173 tau = (
realnum)(OpacityEffective * EffectiveThickness);
178 tau =
MAX2((
double)
opac.taumin,tau);
183 receff_v = (1. - tau/2.);
185 receff_v = (1. -
sexp( tau ) )/ tau;
186 ASSERT( receff_v >= 0.f );
187 ASSERT( receff_v <= 1.f );
192 fprintf(
ioQQQ,
" RECEFF does not understand the transfer method=%3.3s\n",
197 receff_v =
MAX2((
double)
opac.otsmin,receff_v);
199 receff_v =
MIN2(1.,receff_v);