How to add new chemical mechanism

Hi, I tried add new mechanism in CMAQ model by changing mech.def, but I am puzzled about how to edit the rate constant of a chemical reaction. I want to add a heterogeneous reaction, and the reaction coefficients of other existing heterogeneous reactions in mech.def are expressed in a form similar to 1.0~<HETERO_NO2>, Where should the specific value be filled in?
Can anyone give me some advice?

The mech.def describes the mechanism in human-readable format, but it is not itself read by CMAQ. Instead it is read by the CHEMMECH preprocessing program, which creates the input files that are read by CMAQ. Please see this tutorial.

Thanks for your reply, but I’m still wondering how to change the original heteorogeneous rate constant in CHEMMECH program, cause I think the first step to create a new mechanism in CHEMMECH is copy the original mech.def to a new directory and add self-defined chemical formula in it, Am I right?
Looking forward to your early reply!

I believe this calculation is performed in AEROSOL_CHEMISTRY.F. I have not worked in this area of the code, so I’ll defer to others for details. This page may also be helpful:

Thank you very much for your reply. I will refer to the information on the website to try to solve this problem. Best wishes.

Hi Erica,

You do not need to use CHEMMECH processor if you are only revising rate constant for an existing heterogeneous reaction. If you want to modify rate constant for an existing heterogeneous reaction, you can revise AEROSOL_CHEMISTRY.F. If you want to add a heterogeneous reaction or modify an existing heterogeneous reaction, then you need to define them in the mechanism definition file and use CHEMMECH processor to generate RXNS_DATA_MODULE.F90 and RXNS_FUNC_MODULE.F90. You may need to modify GC_*nml file. Then you need to revise AEROSOL_CHEMISTRY.F to add or update rate constants for the heterogeneous reaction. You will need to define all parameters and calculate first order rate constant in AEROSOL_CHEMISTRY.F. Please feel free to contact me if you have any more questions.


Hi Sarwar,
thank you very much for your help! your suggestion is very useful and I am now using this method to solve my problem.
Best wishes!