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

Passive tracers in WRF-Chem (same setup as WRF?)


New member
Hi, I am trying the passive tracer (tracer_opt=2, so far) feature in WRF-Chem, just doing the examples I can see in the forum already and the various NCAR tutorials and videos. All I want to do is put a tracer, in one cell, on the surface level, in the middle of a single domain (lets call it 'plume'), and refresh it in each time step. I don't need lateral boundary tracers or any of the other defaults.

Can I just ask a basic question- if Chem is compiled (which it is), are the steps needed to update the files (Registry.EM, module_initialize_real.F, solve_em.F) to add a new tracer exactly the same as indicated for WRF without Chem? Or, as it is WRF-Chem, do I also have to make changes in registry.chem too, or anywhere else?

I'm assuming regardless of it being WRF-Chem or not, I should add 'plume' to the list (tr17_1 etc) of tracers in the registry, make sure 'plume' is in the package associated with tracer_opt=2, and that its initialised (with 'P_' prepended to the name) in module_initialize_real.F and solve_em.F. The syntax for the tracer in both .F files is exactly the same right? I'm running this on a single server, with mpirun on 12 cores minimum, netCDF built with HDF5 compression, mpich compiled from source and subsequently using those versions of the fortran and C compilers to build WRF.

So in summary, is the 'workflow' the same in WRF-Chem vs WRF, and if it is, is the syntax for the tracer exactly the same in the two .F files? If someone can help me I would be happy to put the steps into a guide for other people who might be in the same boat :) Thankyou for building and supporting such a wonderful tool that we all get such huge value from every single day!
Hi Alex, yes I did- i got it working for a few cases- a simple box with all cells inside that box initialising and then refreshing tracers each time step (which is a bit ‘clumsy’), the other is a bit more precise, using the WRF input IVGTYP grid to only initialise tracers when a value of 7 is present (relevant to a case I’ve been working on but could be easily adapted), with two sets of tracers kept separate in the outputs. I haven’t had a chance to write it up yet but if you wanted to reach out at I can pass over a few files to help get you going. Thanks!