90 return rad_deexcit/(deexcit_loss + rad_deexcit);
107 " %10.10s Te%.2e eden%.1e CS%.2e Aul%.1e Tex%.2e cool%.1e het%.1e conopc%.1e albdo%.2e\n",
120 " Tin%.1e Tout%.1e Esc%.1e eEsc%.1e DesP%.1e Pump%.1e OTS%.1e PopL,U %.1e %.1e PopOpc%.1e\n",
138 double OccupationNumberLine_v;
149 OccupationNumberLine_v = ( t->
Hi->
Pop / t->
Hi->
g )/
SDIV(PopLo_corr ) *
154 OccupationNumberLine_v = 0.;
156 return( OccupationNumberLine_v );
171 TexcLine_v = log(TexcLine_v);
175 TexcLine_v = - t->
EnergyK / TexcLine_v;
182 return( TexcLine_v );
212 ASSERT( trans_prob > 0. );
232 ASSERT(gl > 0. && enercm > 0. && gf > 0. );
237 abscf_v = 1.4974e-6*(gf/gl)*(1e4/enercm);
255 strcpy( chIonLbl_v,
"Dumy" );
287 static char chLineLbl_v[11];
302 sprintf( chLineLbl_v,
"%2.2s%2.2s%5i%c",
305 (
int)(t->
WLAng/1e8),
'c' );
307 else if( t->
WLAng > 9999999. )
310 sprintf( chLineLbl_v,
"%2.2s%2.2s%5.2f%c",
315 else if( t->
WLAng > 999999. )
318 sprintf( chLineLbl_v,
"%2.2s%2.2s%5i%c",
321 (
int)(t->
WLAng/1e4),
'm' );
323 else if( t->
WLAng > 99999. )
326 sprintf( chLineLbl_v,
"%2.2s%2.2s%5.1f%c",
331 else if( t->
WLAng > 9999. )
333 sprintf( chLineLbl_v,
"%2.2s%2.2s%5.2f%c",
338 else if( t->
WLAng >= 100. )
340 sprintf( chLineLbl_v,
"%2.2s%2.2s%5i%c",
343 (
int)t->
WLAng,
'A' );
347 else if( t->
WLAng >= 10. )
349 sprintf( chLineLbl_v,
"%2.2s%2.2s%5.1f%c",
356 sprintf( chLineLbl_v,
"%2.2s%2.2s%5.2f%c",
363 ASSERT( chLineLbl_v[10]==0 );
364 return( chLineLbl_v );
381 WaveMic = 1.e4/EnergyWN;
388 xl = 1.0/WaveMic/WaveMic;
392 xn = 255.4/(41. - xl);
393 xn += 29498.1/(146. - xl);
395 RefIndex_v = xn/1.e6 + 1.;
401 ASSERT( RefIndex_v > 0. );
402 return( RefIndex_v );
434 if( wavelength > 0. )
437 a = log10( wavelength+FLT_EPSILON);
458 const char *chComment )
492 ASSERT( (chInfo ==
'c') || (chInfo ==
'h') || (chInfo ==
'i') || (chInfo ==
'r' ) );
506 ASSERT( strlen( chLab )<5 );
525 double emissivity_in ,
527 double emissivity_out ,
532 double emergent_in , emergent_out;
533 long int i = ipCont-1;
553 emergent_out = emissivity_out;
580 return( (emergent_in + emergent_out) );
591 const char *chComment )
637 ASSERT( (chInfo ==
'c') || (chInfo ==
'h') || (chInfo ==
'i') || (chInfo ==
'r' ) );
649 ASSERT( strlen( chLab )<5 );
675 # define MAXFORLIN 1000
679 static long int nForLin;
684 ASSERT( wavelength >= 0. );
686 if( wavelength == 0. )
699 *ipnt = ipForLin[nForLin];
706 fprintf(
ioQQQ,
"PROBLEM %5ld lines is too many for PntForLine.\n",
708 fprintf(
ioQQQ,
" Increase the value of maxForLine everywhere in the code.\n" );
715 *ipnt = ipForLin[nForLin];
744 strcpy( chLabel, chLabelTemp );
791 linadd(xIntensity_in,wl,
"Inwd",
'i',chComment);
795 linadd(other,wl,
"Coll",
'i',chComment);
799 linadd(other,wl,
"Pump",
'i',chComment);
803 linadd(other,wl,
"Heat",
'i',chComment);
809 const char *chComment)
871 linadd(xIntensity_in,wl,
"Inwd",
'i',chComment);
875 linadd(other,wl,
"Coll",
'i',chComment);
879 linadd(other,wl,
"Pump",
'i',chComment);
883 linadd(other,wl,
"Heat",
'i',chComment);
1004 t->
csi[i] = -FLT_MAX;
1199 *g = (
realnum)(0.29*(log(1.0+1.0/y) - 0.4/
POW2(y + 1.0))/exp(y));
1205 *g = (
realnum)(0.066/sqrt(y));
1242 *g = (
realnum)(0.6 + 0.28*(log(1.0+1.0/y) - 0.4/
POW2(y + 1.0)));
1308 if( (chInfo !=
'i' && chInfo !=
'r') && chInfo !=
'c' )
1310 fprintf(
ioQQQ,
" TOTLIN does not understand chInfo=%c\n",
1320 if(
LineSv[i].chSumTyp == chInfo )
1346 if(
TauLines[i].Coll.heat > *Strong )
1360 if(
TauLine2[i].Coll.heat > *Strong )
1395 if(
HFLines[i].Coll.heat > *Strong )
1407 if(
atmolEmis[i].tran->Coll.heat > *Strong )
1449 if( !lgRadiativeTrans )