Specific meaning of CCTM_ASENS.nc output file in CMAQ-DDM

Hello everyone,
I successfully ran CMAQ5.4-DDM with the following sensinput file configuration. I now have questions about the specific meaning of results under each TSTEP in the CCTM_ASENS.nc file.

Taking the variable O3_TOE as an example, at TSTEP=14, I want to know:

  1. What does each grid cell in the spatial distribution map represent? Specifically, does it indicate the sensitivity of O₃ concentration at TSTEP=14 to TOE at TSTEP=14?

  2. Can DDM calculate the sensitivity of ozone concentration at a specified time to TOE at a different specified time?


Specifically, I want to know what ‘Averaged hourly sensitivities’ means. Any help is grateful.

  1. The spatial distribution indicates the sensitivity of the concentration of species (in your plot O3) resulting from all previous emissions defined by parameter “TOE” (in your case looks like total emissions of NO and NO2).

  2. DDM-3D did have a function to calculate sensitivities to time windowed emissions in the past, but this is currently more easily achieved by splitting out the emissions you want to limit to a different emissions file.

  3. ASENS is the averaged sensitivity across the hour that is analogous to ACONC. It its the sum off all the instantaneous values computed at the sub timesteps (sometimes 5min) divided by the number of the sub timesteps at that hour.

Sergey

Hi, Dr. Sergey.
Thanks for your reply.

I’m still not entirely sure about this. If I set the simulation period as August 7 to August 11, 2023, does the spatial distribution result of O₃_TOE at 14:00 on August 11, 2023 represent the sensitivity of O₃ concentration at 14:00 on August 11, 2023 to NOₓ emissions from August 7 up to that moment? I understand this is the hourly average sensitivity. If I aim to calculate the sensitivity of O₃ to NOₓ emissions at a specific moment (e.g., 12:00 on August 9), do I need to isolate/extract only the emissions from that exact time step?

The reason for my clarification is that I need to compare these results with those from CMAQ-adjoint sensitivity calculations. To ensure a valid comparison, I must fully understand the meaning of DDM (Direct Decoupled Method) outputs.

Thank you for your help!

Best regards,

Jiahao

Jiahao,

  1. Yes. In the case you describe, the sensitivity fields at 14:00 on August 11th will be the result of all the emissions defined by “TOE” from the beginning of the simulation on August 7th until 14:00 on August 11th.

  2. You will need to do such an emissions extraction/isolation if you want to calculated sensitivity TO emissions that you isolate. DDM-3D provides sensitivity fields of all model species TO specifically defined parameters. When your defined parameters are emissions rates (as they usually are), the sensitivity at any specific time will be to all of the emissions in the defined emissions stream(s). When the emissions streams have isolated hours or regions, it the sensitivity will be to that. When the emissions streams have hourly emissions (which is more common), the sensitivity will be to all of the hours, and also to previous days hours (unless there is a clean restart).

Sergey

2 Likes

Hi, Dr. Sergey.

Thanks for your reply.Your answer really helped resolve my confusion.
Thank you very much.

Best regards,
Jiahao

Dear Dr. Sergey,

With your previous guidance and assistance, I’ve understood the meaning of running CMAQ-DDM. Now I have a new confusion and I’d like to seek your help.

After your help, I conducted an experiment to calculate the sensitivity of ozone (O3) to emissions of a specific species (NO here) at a specific grid cell and time step using CMAQ-DDM. My procedure was as follows: In the emission.nc file, I retained only the NO emission value for the grid cell defined by ROW=30_COL=47_LAY=1 at 2023-08-11-TSTEP=11, setting all other emissions to zero. I then configured sensinput.dat accordingly and ran CMAQ-DDM.
image
In my understanding, this setup should compute the sensitivity of O3 to NO emissions from this specific grid cell and time step, and the run successfully generated sensitivity results. Examining the variable “O3_TOE” in CCTM_ASENS_2023-08-11.nc at TSTEP=14, I obtained the result shown in the figure below.


Subsequently, I performed similar sensitivity calculations using a Brute Force method with two experiments:

①Perturbed the NO emission value for ROW=30_COL=47_LAY=1 at 2023-08-11-TSTEP=11 in emission.nc, setting all other emission values to zero.

②Perturbed the same NO emission value, but did not modify any other emission values (retaining the original emission scenario for all other grids and species).

The resulting O3 sensitivity to NO emissions at TSTEP=14 are shown below: the figure above corresponds to experiment ①, and the below to experiment ②.



When discussing with my tutor, he expressed skepticism about Brute Force experiment ①, noting that it drastically alters the original emission scenario by eliminating all non-target emissions. However, my intuition is that experiment ① shares a closer physical interpretation with the CMAQ-DDM result, as both isolate the target emission by setting all others to zero. I would greatly value your insights on whether this approach is valid or if there are fundamental differences in their underlying assumptions that I may be overlooking.

Thank you for your time and guidance.

Best regards,

Jiahao

Your tutor was correct that your experiment altered the chemical regime of the modeled atmosphere too drastically to draw any conclusions based in reality. I wasn’t suggesting that you remove all emissions from the input emissions file aside from those of your interest when I suggested that you isolate them. Instead, more explicitly, I suggest the following:

  1. From your one “emission.nc” file, create two emissions files that together sum up to the original. One of these, would be the one you already have where it contains just the NO emissions of interest to you. The other file would contain all other emissions of NO and of all the other species. Again, the sum of these two files should reproduce the original “emission.nc.”
  2. CMAQ has the capability of ingesting multiple emissions files (streams), so setup a simulation that uses both of your new files at the same time.
  3. Setup sensinput.dat so that it calculates the sensitivity to only the NO file:

TOE
EMIS
NOFILELABEL
SPECIES
NO

END

  1. Run the simulation and analyze the results.
  2. If you wish to calculate a brute force comparison, you could run a simulation using just the 2nd file by itself, but again, you may be altering the chemistry too much (depending on what exactly is missing). A better way would be to run a simulation where you perturb the NO file by a fraction like 20% and then scale the difference in that simulation from the base case by that fraction to reproduce fields comparable to the DDM-3D outputs.

Cheers,

Sergey

Dear Dr. Sergey.

Thank you for your reply and answer. I will continue to try the experiment based on your suggestions.

I have another question regarding emission perturbation methods in the brute force method, taking CMAQ5.0 as an example. To perturb emissions, I can either directly modify the emissions in the emission.nc file or adjust the read emissions in the vdiffacm2.F Fortran source file. Which method is more correct or closer to the results of CMAQ-DDM?

Thank you for your guidance!

Best regards,
Jiahao

Jiahao,

I do not recommend modifying the CMAQ code to alter emissions quantities.

You can change the file directly as you suggest, or you can use the DESID module built into CMAQ for this purpose. In your build directory, there should be a file that is named something like: "CMAQ_Control_DESID_${YOURMECHANISM}.nml. You can open that file and follow the directions there on scaling emissions.

Sergey

Dear Dr. Sergey.

Thank you for your reply and answer. I will continue to try the experiment based on your suggestions.

Best regards,
Jiahao

Dear Dr. Sergey,

Following your guidance, I created two emissions files for CMAQ-DDM simulation, and the configurations of these two emissions in CCTM are as follows.


Then, I made the following settings in sensinput.dat:

However, I received an error message: “User specified DDM Emissions Stream - target - not found in available emissions streams”.

May I ask where the problem lies and how I should set it up correctly?

Best regards,
Jiahao

Try removing the quotation marks (") in the runscript. You can also search for the string EMIS_LAB in your log files to see what you have defined.

Sergey