Tolerance for negative emissions in the DESID module

I was trying to do a zero-out CMAQ (v5.4) run where emissions from a source sector were eliminated. I was subtracting the source sector emissions from merged emissions at runtime using the DESID module.
The run failed with the following error message:

     ERROR: Invalid Negative emission rate -1.192E-07 has been
      detected for CMAQ species NUMACC.
     Please inspect the Emission Control Namelist File (Search for
     "Reading Emission Control Namelist" in this Log File).

I understand that subtraction operation in the DESID module could possibly result in small negative mass. Upon examining desid_module.F, however, I realize that a single tolerance value of -1.0e-7 is applied to all variables; that is, not just mass variables but also aerosol number and surface area variables.
I wonder whether you should apply a different tolerance value to the aerosol number variables since their values are typically many orders of magnitudes greater than mass concentrations?

2 Likes

That’s good advice Bonyoung, and we’ll consider adding it for v6.0. If you want to apply that discrimination yourself and you haven’t already found the following variables, you may use DIFF_MASK_NUM( IDIFF ) and DIFF_MASK_SRF( IDIFF ) to filter for the indices in VDEMIS_DIFF that correspond to number and surface area. respectively. They are in the VDIFF_MAP module that is already used in the header of DESID_CHECK_NEG to access the variable DIFF_SPC.

Best regards,
Ben

2 Likes