Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

How to add dust tracers to determine source regions

This post was from a previous version of the WRF&MPAS-A Support Forum. New replies have been disabled and if you have follow up questions related to this post, then please start a new thread from the forum home page.


New member
Dear Colleagues,

Is there a way to determine the source regions of a certain dust event? eg, there is a high dust concentration at Location A at Time 1. Is there a way to find out where these dust particles are picked up from the ground and when?

Something like adding a dust tracer? Do you guys have any examples/documents on how to do it?
Back-trajectory may not determine the actual source.

Thank you very much!
While there isn't anything implemented that can do exactly what you want, there are some possibilities. You could create a dust tracer for each source region, and modify the dust source code to emit the tracer for that region (e.g., you could create a mask and read it in or hard code lat/lons). The amount of SR to consider just then depends on how much extra computational expense you want to spend on advection. *EDIT* Note that this will not tell you "when" it was emitted, only where"** iI can walk through the process if this is what you are interested in.

Thank you, Jordan!

Do you have an estimate of how much longer it will take if I create dust tracers for about 10 source regions? eg, will it double (or 10% more) the running time?

I am experimenting with another alternative: run each testing case with erodibility turned on in one source region (erod is zero in the rest of the area).
In this way, I need to run the model 10 times for 10 source regions.

I am debugging a problem with this experiment.
I tried two experiment settings: in one, I turn on erod in source regions one-by-one; in the other, I turn on erod in one source region at a time.
The two gave out different total dust summed over all regions.
I suspect there might be some sort of background dust even when all erod is turned off.
Still testing...
As for how much longer, I think a good base rule is about 2-3% per added tracer, but I've never explicitly tested it. Ten would certainly be doable and would probably be the 'cleanest' way.

I don't quite understand what you mean with your debugging experiment - how exactly do the runs differ? And as for background - which chemical mech/tracer opt and which dust option are you using?
Sorry, I made a mistake...I plotted PM10 instead of dust.
I saw some "background dust" when EROD is zero everywhere in the model domain. It is actually PM10 that is not dust.

So my alternative method to track dust source regions worked (running WRF with one source region turned on at a time).
But it is definitely not a clean/efficient way.

It will be great if you can walk me through the process to add dust tracers! (not urgent though)
Thank you very much, Jordan!!!
Good to hear you have a method that works - and you figured out the EROD/PM10 problem. Happy to help with the dust tracer addition. First - what chemistry option are you using? And are you running with aerosol feedbacks? Maybe just attach your namelist.input.

Ok - so here would be the basic process for that option:

First, you will need to define the tracers. Because you the GOCART option has 5 different dust bins, you will actually need to create a unique tracer for each size bin and source region (SR).

So, in Registry/registry.chem, you will need to add lines like this for each of the 5 size bins.

state real dust_1_SR1 ikjftb chem 1 - i0{12}rhusdf=(bdy_interp:dt) "DUST_1_SR1" "dust size bin 1: 0.5um effective radius, source region 1" "ug/kg-dryair"
state real dust_1_SRN ikjftb chem 1 - i0{12}rhusdf=(bdy_interp:dt) "DUST_1_SRN" "dust size bin 1: 0.5um effective radius, source region N" "ug/kg-dryair"

Then, you need to add these tracers to the GOCART chem_opt option (make sure to keep a backup copy of your code, especially the registry as this will change the GOCART option), i.e, add them to this line:

package gocart_simple chem_opt==300 - chem:so2,sulf,dms,msa,p25,bc1,bc2,oc1,oc2,dust_1,dust_2,dust_3,dust_4,dust_5,seas_1,seas_2,seas_3,seas_4,p10

Then you will need modify the GOCART routines to emit the correct tracer for a given SR, as well as do dry dep, settling, and some diagnostics, e.g., accounting for all species when summing total PM.

This will be up to you how you do it, but I would do a grep for dust_1 in the chem directory and see where things need to be modified to account for the new species. Most things should be straight forward but the emissions might be a little tricky without just hard coding lat/lon boundaries.