00001
00002
00003
00004 #include "cddefines.h"
00005 #include "phycon.h"
00006 #include "dense.h"
00007 #include "atoms.h"
00008
00009 double atom_pop2(double omega,
00010 double g1,
00011 double g2,
00012 double a21,
00013 double bltz,
00014 double abund)
00015 {
00016 double boltz,
00017 popexc_v,
00018 q12,
00019 q21,
00020 r;
00021
00022 DEBUG_ENTRY( "atom_pop2()" );
00023
00024
00025
00026
00027
00028 boltz = bltz*phycon.teinv;
00029 if( abund == 0. || boltz > 15. )
00030 {
00031 popexc_v = 0.;
00032 return( popexc_v );
00033 }
00034
00035
00036 ASSERT( omega > 0. );
00037
00038 q21 = dense.cdsqte*omega;
00039 q12 = q21/g1*exp(-boltz);
00040 q21 /= g2;
00041 r = (a21 + q21)/q12;
00042 popexc_v = abund*a21/(r + 1.);
00043 return( popexc_v );
00044 }