00001
00002
00003
00004 #include "cddefines.h"
00005 #include "taulines.h"
00006 #include "physconst.h"
00007 #include "coolheavy.h"
00008 #include "thermal.h"
00009 #include "dense.h"
00010 #include "hmi.h"
00011 #include "phycon.h"
00012 #include "h2.h"
00013 #include "mole.h"
00014 #include "lines_service.h"
00015 #include "radius.h"
00016 #include "lines.h"
00017
00018 void lines_molecules(void)
00019 {
00020 long int i;
00021
00022 DEBUG_ENTRY( "lines_molecules()" );
00023
00024
00025 i = StuffComment( "molecules" );
00026 linadd( 0., (float)i , "####", 'i');
00027
00028
00029
00030
00031 linadd(CoolHeavy.h2line,20000.,"H2 l",'c');
00032
00033 hmi.h2line_cool_frac = (float)MAX2( CoolHeavy.h2line/thermal.ctot , hmi.h2line_cool_frac );
00034
00035
00036 linadd(CoolHeavy.HD,0,"HDro",'c');
00037
00038
00039 hmi.h2dtot += (float)(hmi.HeatH2Dish_used*radius.dVeff);
00040 hmi.h2dfrc = (float)(MAX2(hmi.HeatH2Dish_used/thermal.htot,hmi.h2dfrc));
00041
00042
00043 hmi.h2pmax = MAX2(hmi.h2pmax,(float)(thermal.heating[0][16]/thermal.htot));
00044
00045
00046 linadd(hmi.HeatH2Dish_used,0,"H2dH",'h');
00047
00048
00049 hmi.HeatH2DexcMax = MAX2((float)(hmi.HeatH2Dexc_used/thermal.htot),hmi.HeatH2DexcMax);
00050
00051
00052 hmi.CoolH2DexcMax = MAX2((float)(-hmi.HeatH2Dexc_used/thermal.htot),hmi.CoolH2DexcMax);
00053
00054
00055 linadd( MAX2(0.,hmi.HeatH2Dexc_used),0,"H2vH",'h');
00056
00057
00058 linadd( MAX2(0.,-hmi.HeatH2Dexc_used) ,0,"H2vC",'c');
00059
00060
00061 if( h2.lgH2ON )
00062 {
00063
00064
00065 linadd( 0. ,0,"H2 v",'i');
00066 }
00067 else
00068 {
00069
00070 linadd( hmi.Hmolec[ipMH2s]*2e-7*4.17e-12,0,"H2 v",'i');
00071 }
00072
00073
00074
00075 H2_LinesAdd();
00076
00077
00078 linadd(hmi.hmicol,0,"H-FB",'c');
00079
00080
00081 linadd(CoolHeavy.brems_cool_hminus,0,"H-FF",'i');
00082
00083
00084 linadd(hmi.HalphaHmin*3.032e-12,6563,"H-CT",'i');
00085
00086
00087 hmi.hmitot += hmi.hmihet*radius.dVeff;
00088
00089
00090 linadd(MAX2(0.,hmi.hmihet),0,"H- H",'h');
00091
00092
00093 linadd(MAX2(0.,-hmi.hmihet),0,"H-Hc",'c');
00094
00095
00096 linadd(CoolHeavy.H2PlsCool,0,"H2+ ",'c');
00097
00098
00099 linadd(hmi.h2plus_heat,0,"H2+p",'h');
00100
00101
00102 linadd(MAX2(3.27e-12+phycon.te*BOLTZMANN,0.)*dense.xIonDense[ipHYDROGEN][1]*dense.xIonDense[ipHELIUM][0]*1e-20+
00103 (1.76e-11+phycon.te*BOLTZMANN)*dense.xIonDense[ipHYDROGEN][0]*dense.xIonDense[ipHELIUM][1]*1e-16,0,"HEH+",'i');
00104
00105
00106 co.codtot += co.CODissHeat*(float)radius.dVeff;
00107 co.codfrc = (float)MAX2(co.CODissHeat/thermal.htot,co.codfrc);
00108
00109
00110 linadd(co.CODissHeat,0,"COdh",'h');
00111
00112
00113 linadd(CoolHeavy.C12O16Rot,0,"CO12",'c');
00114
00115
00116 linadd(CoolHeavy.C13O16Rot,0,"CO13",'c');
00117
00118
00119 co.COCoolBigFrac = MAX2( co.COCoolBigFrac, (CoolHeavy.C12O16Rot+CoolHeavy.C13O16Rot)/thermal.ctot);
00120
00121
00122 for( i=0; i < nCORotate; i++ )
00123 {
00124 PutLine(&C12O16Rotate[i]);
00125 }
00126 for( i=0; i < nCORotate; i++ )
00127 {
00128 PutLine(&C13O16Rotate[i]);
00129 }
00130
00131 DEBUG_EXIT( "lines_molecules()" );
00132 return;
00133 }
00134