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 }