00001
00002
00003
00004
00006 extern void CO_drive(void);
00007
00009 extern void CO_zero(void);
00010
00012 extern void CO_create_react(void);
00013
00015 extern void CO_Init(void);
00017 extern void CO_update_rks( void );
00018
00019 extern void CO_update_species_cache(void);
00020
00021 extern double CO_sink_rate(const char species[]);
00022
00023 extern double CO_source_rate(const char species[]);
00024
00025 extern double CO_dissoc_rate(const char species[]);
00026
00027 struct COmole_rate_s *CO_findrate_s(const char buf[]);
00028
00029 extern double CO_findrk(const char buf[]);
00030
00031 extern double CO_findrate(const char buf[]);
00032
00065 EXTERN struct t_co {
00066
00068 float CODissHeat,
00070 codfrc,
00072 codtot;
00073
00075 double COCoolBigFrac;
00076
00078 bool lgCOCoolCaped;
00079
00081 bool lgNoCOMole;
00082
00084 bool lgCODoCalc;
00085
00090 float
00093 hydro_sink[8],
00094 hydro_source[8];
00095
00101 double hmole_mass[N_H_MOLEC+1];
00102
00104 float RatioC12O16_2_C13O16;
00105
00107 bool lgH2Ozer;
00108
00110 bool lgUMISTrates;
00111
00112 bool lgFederman;
00113
00117 bool lgNonEquilChem;
00118
00122 bool lgProtElim;
00123
00127 bool lgNeutrals;
00128
00129 double h2lim;
00130
00131 long co_nzone , iteration_co;
00132
00134 double comole_eden;
00135
00136 # if 0
00137
00138 bool lgElem_in_CO_chem[LIMELM];
00139 # endif
00140
00141
00142 float nitro_dissoc_rate;
00143
00145 float hep_destroy;
00146
00149 double H_CH_C_H_H;
00150 double H_OH_O_H_H ;
00151 double H_H2O_OH_H_H;
00152 double H_COP_CO_HP;
00153 double H_CH_C_H2;
00154 double H_CHP_CP_H2;
00155 double H_CH2_CH_H2;
00156 double H_CH3P_CH2P_H2;
00157 double H_OH_O_H2;
00158 double H_H2O_OH_H2;
00159 double Hminus_HCOP_CO_H2;
00160 double Hminus_H3OP_H2O_H2;
00161 double Hminus_H3OP_OH_H2_H;
00162 double HP_CH_CHP_H;
00163 double HP_CH2_CH2P_H;
00164 double HP_H2O_H2OP_H;
00165 double HP_O2_O2P_H;
00166 double HP_OH_OHP_H;
00167 double HP_SiO_SiOP_H;
00168 double HP_CH2_CHP_H2;
00169 double HP_SiH_SiP_H2;
00170 double H2_CHP_CH2P_H;
00171 double H2_CH2P_CH3P_H;
00172 double H2_OHP_H2OP_H;
00173 double H2_H2OP_H3OP_H;
00174 double H2_COP_HCOP_H;
00175 double H2_OP_OHP_H;
00176 double H2_SiOP_SiOHP_H;
00177 double H2_C_CH_H;
00178 double H2_CP_CHP_H;
00179 double H2_CH_CH2_H;
00180 double H2_OH_H2O_H;
00181 double H2_O_OH_H;
00182 double H2_CH_C_H2_H;
00183 double H2_OH_O_H2_H;
00184 double H2_H2O_OH_H2_H;
00185 double H2_O2_O_O_H2;
00186 double H2_O2_OH_OH;
00187 double H2s_CH_C_H2_H;
00188 double H2s_OH_O_H2_H;
00189 double H2s_H2O_OH_H2_H;
00190 double H2s_O2_O_O_H2;
00191 double H2P_C_CHP_H;
00192 double H2P_CH_CH2P_H;
00193 double H2P_CH2_CH3P_H;
00194 double H2P_OH_H2OP_H;
00195 double H2P_H2O_H3OP_H;
00196 double H2P_CO_HCOP_H;
00197 double H2P_O_OHP_H;
00198 double H2P_CH_CHP_H2;
00199 double H2P_CH2_CH2P_H2;
00200 double H2P_CO_COP_H2;
00201 double H2P_H2O_H2OP_H2;
00202 double H2P_O2_O2P_H2;
00203 double H2P_OH_OHP_H2;
00204 double H3P_C_CHP_H2;
00205 double H3P_CH_CH2P_H2;
00206 double H3P_CH2_CH3P_H2;
00207 double H3P_OH_H2OP_H2;
00208 double H3P_H2O_H3OP_H2;
00209 double H3P_CO_HCOP_H2;
00210 double H3P_O_OHP_H2;
00211 double H3P_SiH_SiH2P_H2;
00212 double H3P_SiO_SiOHP_H2;
00213 double H2s_CH_CH2_H;
00214 double H2s_O_OH_H;
00215 double H2s_OH_H2O_H;
00216 double H2s_C_CH_H;
00217 double H2s_CP_CHP_H;
00218 double H_CH3_CH2_H2;
00219 double H_CH4P_CH3P_H2;
00220 double H_CH5P_CH4P_H2;
00221 double H2_CH2_CH3_H;
00222 double H2_CH3_CH4_H;
00223 double H2_CH4P_CH5P_H;
00224 double H2s_CH2_CH3_H;
00225 double H2s_CH3_CH4_H;
00226 double H2P_CH4_CH3P_H2;
00227 double H2P_CH4_CH4P_H2;
00228 double H2P_CH4_CH5P_H;
00229 double H3P_CH3_CH4P_H2;
00230 double H3P_CH4_CH5P_H2;
00231 double HP_CH3_CH3P_H;
00232 double HP_CH4_CH3P_H2;
00233 double HP_CH4_CH4P_H;
00234 double HP_HNC_HCN_HP;
00235 double H_HNC_HCN_H;
00236 double H2_HCNP_HCNHP_H;
00237 double H3P_HCN_HCNHP_H2;
00238 double H2s_OP_OHP_H;
00239
00240 double C_H3OP_HCOP_H2_1,
00241 C_OH_CO_H_1,
00242 CP_OH_CO_HP_1,
00243 CP_H2O_HCOP_H_1,
00244 CP_OH_COP_H_1,
00245 O_CH_CO_H_1,
00246 O_CHP_COP_H_1,
00247 O_CH2_CO_H_H_1,
00248 O_CH2_CO_H2_1,
00249 O_CH2P_HCOP_H_1,
00250 O_CH3P_HCOP_H2_1,
00251 O_H2OP_O2P_H2_1,
00252 O_OH_O2_H_1,
00253 O_OHP_O2P_H_1,
00254 O_SiH_SiO_H_1,
00255 O_SiH2P_SiOHP_H_1,
00256 OP_CH_COP_H_1,
00257 OP_OH_O2P_H_1,
00258 Si_OH_SiO_H_1,
00259 SiP_H2O_SiOHP_H_1,
00260 SiP_OH_SiOP_H_1,
00261 CHP_H2O_HCOP_H2_1,
00262 CHP_OH_COP_H2_1,
00263 H_C_CH_nu,
00264 H_CP_CHP_nu,
00265 H_OH_H2O_nu,
00266 Hminus_CH_CH2_e,
00267 Hminus_C_CH_e,
00268 Hminus_OH_H2O_e,
00269 Hminus_O_OH_e,
00270 H2_C_CH2_nu,
00271 H2_CP_CH2P_nu,
00272 H2_SiP_SiH2P_nu,
00273 HeP_CH_CP_He_H,
00274 HeP_CH2_CHP_He_H,
00275 HeP_OH_OP_He_H,
00276 HeP_H2O_OHP_He_H,
00277 HeP_SiH_SiP_He_H,
00278 HeP_H2O_OH_He_HP,
00279 HeP_CH2_CP_He_H2,
00280 crnu_CH_C_H,
00281 crnu_CHP_CP_H,
00282 crnu_H2O_OH_H,
00283 crnu_OH_O_H,
00284 crnu_SiH_Si_H,
00285 nu_CH_C_H,
00286 nu_CHP_CP_H,
00287 nu_CH2_CH_H,
00288 nu_CH2P_CHP_H,
00289 nu_CH3P_CH2P_H,
00290 nu_CH3P_CHP_H2,
00291 nu_H2O_OH_H,
00292 nu_OH_O_H,
00293 nu_OHP_O_HP,
00294 nu_SiH_Si_H,
00295 e_CHP_C_H,
00296 e_CH2P_CH_H,
00297 e_CH2P_C_H_H,
00298 e_CH2P_C_H2,
00299 e_CH3P_C_H2_H,
00300 e_CH3P_CH2_H,
00301 e_CH3P_CH_H_H,
00302 e_CH3P_CH_H2,
00303 e_H2OP_OH_H,
00304 e_H2OP_O_H_H,
00305 e_H2OP_O_H2,
00306 e_H3OP_H2O_H,
00307 e_H3OP_OH_H_H,
00308 e_H3OP_OH_H2,
00309 e_H3OP_O_H2_H,
00310 e_HCOP_CO_H,
00311 e_OHP_O_H,
00312 e_SiH2P_SiH_H,
00313 e_SiH2P_Si_H_H,
00314 e_SiH2P_Si_H2,
00315 e_SiOHP_SiO_H,
00316 H2_CH_CH3_nu,
00317 H2_CH3P_CH5P_nu,
00318 H2s_CH_CH3_nu,
00319 Hminus_CH2_CH3_e,
00320 Hminus_CH3_CH4_e,
00321 nu_CH3_CH2_H,
00322 nu_CH3_CH_H2,
00323 nu_CH4_CH3_H,
00324 nu_CH4_CH2_H2,
00325 nu_CH4_CH_H2,
00326 crnu_CH3_CH2_H,
00327 crnu_CH3_CH_H2,
00328 crnu_CH4_CH2_H2,
00329 e_CH5P_CH3_H2,
00330 e_CH5P_CH4_H,
00331 e_CH4P_CH3_H,
00332 e_CH4P_CH2_H_H,
00333 H2_N_NH_H ,
00334 H2_NH_NH2_H ,
00335 H2_NH2_NH3_H ,
00336 H2_CN_HCN_H ,
00337 HP_HNO_NOP_H2,
00338 HP_HS_SP_H2,
00339 H_HSP_SP_H2 ,
00340 H2P_N_NHP_H ,
00341 H2_NP_NHP_H ,
00342 H2_NHP_N_H3P ,
00343 H2P_NH_NH2P_H ,
00344 H2_NHP_NH2P_H ,
00345 H2_NH2P_NH3P_H ,
00346 H2_NH3P_NH4P_H ,
00347 H2P_CN_HCNP_H ,
00348 H2_CNP_HCNP_H ,
00349 H2P_NO_HNOP_H ,
00350 H2_SP_HSP_H ,
00351 H2_CSP_HCSP_H ,
00352 H3P_NH_NH2P_H2 ,
00353 H3P_NH2_NH3P_H2 ,
00354 H3P_NH3_NH4P_H2 ,
00355 H3P_CN_HCNP_H2 ,
00356 H3P_NO_HNOP_H2 ,
00357 H3P_S_HSP_H2 ,
00358 H3P_CS_HCSP_H2 ,
00359 H3P_NO2_NOP_OH_H2 ,
00360 HP_NH_NHP_H ,
00361 HP_NH2_NH2P_H ,
00362 HP_NH3_NH3P_H ,
00363 H_CNP_CN_HP ,
00364 HP_HCN_HCNP_H ,
00365 H_HCNP_HCN_HP ,
00366 H_N2P_N2_HP ,
00367 HP_NO_NOP_H ,
00368 HP_HS_HSP_H ,
00369 HP_SiN_SiNP_H ,
00370 HP_CS_CSP_H ,
00371 HP_NS_NSP_H ,
00372 HP_SO_SOP_H ,
00373 HP_OCS_OCSP_H ,
00374 HP_S2_S2P_H ,
00375 H2P_NH_NHP_H2 ,
00376 H2P_NH2_NH2P_H2 ,
00377 H2P_NH3_NH3P_H2 ,
00378 H2P_CN_CNP_H2 ,
00379 H2P_HCN_HCNP_H2 ,
00380 H2P_NO_NOP_H2 ,
00381 H2_ClP_HClP_H ,
00382 H2_HClP_H2ClP_H ,
00383 H3P_Cl_HClP_H2,
00384 H3P_HCl_H2ClP_H2,
00385 HP_HCl_HClP_H,
00386 HP_C2_C2P_H,
00387 H2_S_HS_H,
00388 H2P_C2_C2P_H2,
00389 Hminus_NH4P_NH3_H2,
00390 Hminus_NP_N_H,
00391 HP_C2H2_C2H2P_H,
00392 HP_C2H2_C2HP_H2 ,
00393 HP_C3H_C3HP_H ,
00394 HP_C3H_C3P_H2 ,
00395 H2P_C2H_C2H2P_H,
00396 H2P_C2H2_C2H2P_H2,
00397 H3P_C2H_C2H2P_H2 ,
00398 H3P_C3_C3HP_H2 ,
00399 H2_C2HP_C2H2P_H ,
00400 H2_C3P_C3HP_H,
00401 H_C2H3P_C2H2P_H2 ,
00402 H3P_C2H2_C2H3P_H2 ,
00403 H2P_C2H2_C2H3P_H ,
00404 HP_C3_C3P_H ,
00405 HP_C2H_C2HP_H,
00406 H2P_C2_C2HP_H ,
00407 H2P_C2H_C2HP_H2,
00408 H3P_C2_C2HP_H2 ,
00409 H2_C2P_C2HP_H ,
00410 HP_C2H_C2P_H2,
00411 N2_H3P_N2HP_H2;
00412 } co;
00413
00414 EXTERN struct t_mole {
00415
00416
00418 double H2_to_H_limit;
00419
00422 long int n_h2_elec_states;
00423
00426 bool lgColl_gbar;
00427
00429 bool lgColl_deexec_Calc;
00430
00432 bool lgColl_dissoc_coll;
00433
00436 bool lgH2_grain_deexcitation;
00437
00439 bool lgH2_LTE;
00440
00442 bool lgH2_ortho_para_coll_on;
00443
00445 bool lgH2_He_Meudon;
00446 bool lgH2_He_Stancil;
00447
00449 int nH2_TRACE;
00450
00452 bool lgH2_NOISE ,
00454 lgH2_NOISECOSMIC;
00455
00457 int nH2_trace_final ,
00458 nH2_trace_iterations ,
00459 nH2_trace_full,
00460 nH2_trace_matrix;
00461
00464 bool lgGrain_mole_deplete;
00465
00467 double xMeanNoise , xSTDNoise;
00468
00470 bool lgElem_in_chemistry[LIMELM];
00471 int num_comole_calc, num_comole_tot, num_elements;
00472
00473
00476 double **source , **sink;
00477
00478
00480 float ***xMoleChTrRate;
00481 double **amat,
00482 *b,
00483 **c;
00484 } mole;
00485
00486 enum {CHARS_SPECIES=7};
00487
00488 EXTERN struct molecule {
00489 int nElem[LIMELM];
00490 int nelem_hevmol;
00491 char label[CHARS_SPECIES];
00492 int nElec;
00493 int Excit;
00494 bool lgGas_Phase;
00495 int n_nuclei;
00496 float hevmol;
00497 float hev_reinit;
00498 float *location;
00499 float hevcol;
00500 float hevcol_old;
00501 float pdr_mole_co;
00502
00503
00504 float xMoleFracMax;
00505 float mole_mass;
00506 float co_save;
00507 float comole_save;
00508 float hevmol_save;
00509 int active;
00510 int index;
00511 } **COmole;
00512
00513
00514 extern struct molecule *findspecies(const char buf[]);
00515
00516 extern void CO_punch_mol(FILE *punit, const char species[],
00517 char header[], double depth);