How to close a certain gas-phase reaction in CMAQ5.1?

Hi,
I want to study the impact of the oxiidation of HCHO to some reactive gas, and I want to close the following gas-phase reactions of FORM, the reactions are:
< R73> FORM + OH = HO2 + CO # 9.0E-12;
< R74> FORM = 2.000*HO2 + CO # 1.0/<FORM_R_IUPAC10>;
< R75> FORM = CO # 1.0/<FORM_M_IUPAC10>;
< R76> FORM + O = OH + HO2 + CO # 3.4E-11 @ 1600;
< R77> FORM + NO3 = HNO3 + HO2 + CO # 5.8E-16;
< R78> FORM + HO2 = HCO3 # 9.7E-15 @ -625;

Should I only comment out these reactions in mech_CB05e51.def and recompile the model?
If not, what other modifications should I do with the code? Please help me ~

Thanks very much for your help

Please, anybody show some guidance to me

I assume you want to remove the effect of these reactions from the model. You can accomplish it by several ways. The simplest way is to find the Reaction Labels in RXNS_FUNC_MODULE.F90 and assign 0.0 values and then re-compile and re-run the model.

For example, you can revise rate constant of R73 as follows:

! Reaction Label R73
RKI( NCELL, 73) = 0.0

Thanks,
Sarwar

1 Like

Thanks a lot for your help. It works!

May I ask you a further question? I want to revise the stoichiometric coefficient of some gas-phase reactions. For example, the reaction in mech_cb6r3_ae7_aq.def is,
FORM = 2.0*HO2 + CO

Now, I want to change the stoichiometric coefficient, 2.0, to 0,
FORM = 0*HO2 + CO

how should I edit the code? I find there is a number set of SC in RXNS_DATA_MODULE.F90, but I dont know which one is related to the reaction R97? How should I revise the code? Please show some guidance to me.

./RXNS_DATA_MODULE.F90:! SC = Stoichiometric coefficients
./RXNS_DATA_MODULE.F90: REAL( 8 ) :: SC( NRXNS,MXPRD )
./RXNS_DATA_MODULE.F90: DATA ( SC( IRXXN, 1 ), IRXXN = 1, NRXNS ) / &
./RXNS_DATA_MODULE.F90: DATA ( SC( IRXXN, 2 ), IRXXN = 1, NRXNS ) / &
./RXNS_DATA_MODULE.F90: DATA ( SC( IRXXN, 3 ), IRXXN = 1, NRXNS ) / &
./RXNS_DATA_MODULE.F90: DATA ( SC( IRXXN, 4 ), IRXXN = 1, NRXNS ) / &
./RXNS_DATA_MODULE.F90: DATA ( SC( IRXXN, 5 ), IRXXN = 1, NRXNS ) / &
./RXNS_DATA_MODULE.F90: DATA ( SC( IRXXN, 6 ), IRXXN = 1, NRXNS ) / &
./RXNS_DATA_MODULE.F90: DATA ( SC( IRXXN, 7 ), IRXXN = 1, NRXNS ) / &
./RXNS_DATA_MODULE.F90: DATA ( SC( IRXXN, 8 ), IRXXN = 1, NRXNS ) / &
./RXNS_DATA_MODULE.F90: DATA ( SC( IRXXN, 9 ), IRXXN = 1, NRXNS ) / &
./RXNS_DATA_MODULE.F90: DATA ( SC( IRXXN, 10 ), IRXXN = 1, NRXNS ) / &
./RXNS_DATA_MODULE.F90: DATA ( SC( IRXXN, 11 ), IRXXN = 1, NRXNS ) / &
./RXNS_DATA_MODULE.F90: DATA ( SC( IRXXN, 12 ), IRXXN = 1, NRXNS ) / &
./RXNS_DATA_MODULE.F90: DATA ( SC( IRXXN, 13 ), IRXXN = 1, NRXNS ) / &
./RXNS_DATA_MODULE.F90: DATA ( SC( IRXXN, 14 ), IRXXN = 1, NRXNS ) / &

It is possible to revise RXNS_DATA_MODULE.F90 for changing stoichiometric coefficients. However, it is prone to error and I avoid such changes in RXNS_DATA_MODULE.F90. For changing stoichiometric coefficients, a better option is to revise the mechanism definition file, generate RXNS_FUNC_MODULE.F90 and RXNS_DATA_MODULE.F90 files using the chemical mechanism compiler, re-compile and re-run the model. Please note that it will also require a new EBI solver. Alternately, you can use the Rosenbrock or the Gear solver.

Thanks,
Sarwar

1 Like

In addition to Sarwar’s excellent advice, you may also view the Tutorial on making chemical mechanism changes: CMAQ/CMAQ_UG_tutorial_chemicalmechanism.md at main · USEPA/CMAQ · GitHub

2 Likes

Thanks for your help.
I have went through the Tutorial, below is my understanding, please check whether I am right.

Since I just want to revise the stoichiometric coefficients, I only need to revise the mech_*.def (no need for me to edit GC_{Mechanism}.nml, AE_{Mechanism}.nml, NR_{Mechanism}.nml, and Species_Table_TR_0.nml. Just using the default ones). I can use the “chemmech” and “create_ebi” UTIL to generate new mechanism and EBI solver. After that, re-complile and re-run the model using the generated mechanism will work.

Thanks a lot for your helpful advice. I think I understood most of your suggestion.
Below is my understanding, please check whether I am right.

According to your suggestion, I only need to revise the mech_*.def since I just want to revise the stoichiometric coefficients (no need for me to edit GC_{Mechanism}.nml, AE_{Mechanism}.nml, NR_{Mechanism}.nml, and Species_Table_TR_0.nml. Just using the default ones).
I can use the “chemmech” UTIL to generate new mechanism and then, use “create_ebi” with the new mechanism as input to generate a new EBI solver.
After that, re-complile and re-run the model using the generated mechanism will work.

That’s correct.

One additional recommendation is to read the guidance under section 2.2.b of the tutorial linked above. It will help you to run the chemmech and create_ebi steps automatically without much extra work on your part.

Best,
Ben