Hudman et al 2012 soil NOx emissions algorithm

From Geos-chem
Jump to: navigation, search

This page describes the Hudman et al 2012 soil NOx emissions algorithm, which is being used in GEOS-Chem v9-02 and newer versions.


Rynda Hudman developed a new soil NOx emissions scheme, based on the work of Neil Moore (formerly of Dalhousie University). This work was published in Hudman et al (2012).

Bram Maasakkers (Eindhoven) further updated the Hudman et al (2012) soil NOx emissions scheme, as follows:

Bram Maasakkers wrote:

The most important changes in the submitted version are:
  • Minor changes originating from the update from GEOS-Chem v8-02-02 to GEOS-Chem v9-01-03. Furthermore, to allow the parametrization to work with non-local planetary-boundary layer (PBL) mixing, a soil NOx section has been added to the non-local PBL mixing module. This was required to report the deposition of N to the soil NOx module.
  • The Jacob and Bakwin (1991) reduction factor has been implemented, representing the deposition of emitted NOx in the canopy. Implementation leads to a decrease of annual soil NOx emissions from 10.7 to 9.5 Tg N yr-1. The largest impact occurs over the tropical rain-forests in South America and central Africa.
  • To allow the model to work at all resolutions (the provided code only worked at 2x2.5), online regridding has been implemented using new high resolution input files.

Bram Maasakker's updates to the Hudman et al (2012) emissions scheme were implemented into the GEOS-Chem v9-02 public release. The older Yienger and Levy (1995) soil NOx emissions algorithm has since been removed from GEOS-Chem.

--Bob Y. 14:54, 5 January 2015 (EST)


See this validation document by Rynda Hudman.

--Bob Y. 16:45, 9 March 2011 (EST)

Source code and data

Bram Maasakkers wrote:

Four new input files are read in separate modules.
  • Surface resistance values (for the canopy NOx computation)
  • Clim file (includes regridding):
  • Fertilizer reservoir (includes regridding):
  • MODIS/Koppen landcover map (includes regridding):

Data files for GEOS-Chem v10-01 and higher versions

In GEOS-Chem v10-01 and newer versions, the data files


are now read with the HEMCO emissions component. These data files are contained in the HEMCO data directory tree. For detailed instructions on how to download these data files to your disk server, please see our Downloading the HEMCO data directories wiki post.

--Bob Y. 16:57, 13 February 2015 (EST)

Data files for GEOS-Chem v9-02

Data files for the updated soil NOx emissions scheme can be found at:

You can download these directories with anonymous FTP or the Wget utility. For instructions, please see Chapter 2.4, Downloading the GEOS-Chem shared data directories in the GEOS-Chem Online User's Guide.

--Melissa Payer 12:22, 30 October 2012 (EDT)

Modifications for HEMCO

The soil NOx algorithm has been included as an extension to the HEMCO emissions component in GEOS-Chem v10-01e. Here is a list of the source code files that were modified:

Module(s) Status
  • Headers/commsoil_mod.F
  • HEMCO has rendered everything obsolete in Headers/commsoil_mod.F except the following 3 arrays:
    2. DRY_TOTN
    3. WET_TOTN
  • These arrays have now been added to module GeosCore/get_ndep_mod.F as PUBLIC module variables.
  • NOTE: The ND49 timeseries diagnostics for soil NOx quantities are now broken. HEMCO keeps track of these quantities via its own diagnostic archiving system.
  • GeosCore/nc_soilnox_read.F90
  • GeosCore/pulsing.F
  • GeosCore/soil_nox_mod.F
  • GeosCore/soilnox_restart_mod.F

  • Soil NOx emissions are now computed by a HEMCO extension (source code file HEMCO/Extension/hcox_soilnox_mod.F90).
  • The soil NOx restart file quantities are now saved to the HEMCO restart file.

--Bob Y. 17:24, 5 January 2015 (EST)


  1. Bey I., D. J. Jacob, R. M. Yantosca, J. A. Logan, B. Field, A. M. Fiore, Q. Li, H. Liu, L. J. Mickley, and M. Schultz, Global modeling of tropospheric chemistry with assimilated meteorology: Model description and evaluation, J. Geophys. Res., 106, 23,073-23,096, 2001. PDF
  2. Hudman, R.C., N.E. Moore, R.V. Martin, A.R. Russell, A.K. Mebust, L.C. Valin, and R.C. Cohen, A mechanistic model of global soil nitric oxide emissions: implementation and space based-constraints, Atm. Chem. Phys., 12, 7779-7795, doi:10.5194/acp-12-7779-2012. HTML
  3. Jacob, D.J., and P.S. Bakwin, Cycling of NOx in tropical forest canopies and its implications for the global source of biogenic NOx to the atmosphere, in Microbial Production and Consumption of Greenhouse Gases, edited by W.B. Whitman, American Society of Microbiology, Washington DC, 1991.
  4. Olson, J. World Ecosystems (WEI.4): Digital raster data on a 10 minute geographic 1080 x 2160 grid, in Global ecosystems database, version 1.0: Disc A, edited by NOAA Natl. Geophys. Data Center, Boulder, Colorado, 1992.
  5. Yienger, J.J, and H. Levy, Empirical model of global soil-biogenic NOx emissions, J. Geophys. Res., 100, D6, 11,447-11464, June 20, 1995.
  6. Wang, Y., D.J. Jacob, and J.A. Logan, Global Simulation of tropospheric O3-NOx-hydrocarbon chemistry: 1. Model formulation, J. Geophys. Res., 103, pp. 10713-10725, 1998. PDF

--Bob Y. 14:20, 19 February 2010 (EST)

Previous issues that have now been resolved

The following posts describe issues with the Hudman et al 2012 soil NOx emissions algorithm that were later fixed.

Routine SOIL_DRYDEP produces NaN values when ND44 diagnostic is turned off

This issue was tested in the 1-year benchmark simulation v9-02f and approved on 20 Mar 2013.

This error is suspected of producing anomalously high NOx emissions over Greenland in the 1-year benchmark to GEOS-Chem v9-02f. We will re-run that benchmark with this fix.

Patrick Kim wrote:

I have discovered [an] error when we run with non-local PBL mixing.... It actually has nothing to do with the non-local mixing itself, but rather is a result of the soil NOx emissions. NIT was being passed as an NaN into SOIL_DRYDEP from the CHEM_NIT subroutine (in GeosCore/sulfate_mod.F), and therefore you get a NaN for DRY_NIT (in module GeosCore/get_ndep_mod.F). This causes the A_FERT term to be an NaN in the call to routine SOILNOX and it propagates down in the calculation from there.
Looking at the CHEM_NIT subroutine, it looks like this is because I did not have ND44 turned on in my input.geos file. In the code, [array] T44 is only initialized and calculated if the diagnostic is turned on, but this is what is passed to SOIL_DRYDEP. My suggestion would be to change the code to allow the calculation of the dry deposition quantities earlier without having to specifically turn on this diagnostic.... I've run tests with the diagnostic on and have not run into any problems since.

We have fixed this as follows:

  1. GeosCore/sulfate_mod.F: In routines CHEM_NH3, CHEM_NH4, CHEM_NH4aq, and CHEM_NIT, we save drydep fluxes into an array that is defined whether or not you have the ND44 diagnostic turned on. Then we pass values from that array to SOIL_DRYDEP. Also, we now prevent SOIL_DRYDEP and ND44 from being updated if LNLPBL = .TRUE., since in that case those operations will be done in the non-local PBL mixing module (GeosCore/vdiff_mod.F90).

  2. GeosCore/drydep_mod.F: Moved the call to SOIL_DRYDEP out of the !$OMP CRITICAL block, this is not necessary.

  3. GeosCore/vdiff_mod.F90: Cosmetic changes and added comments.

--Bob Y. 16:56, 13 March 2013 (EDT)

Prevent LOG(0) error from occurring in soil NOx module

This update was tested in the 1-month benchmark simulation v9-02r and approved on 14 Nov 2013.

This fix was originally made in GeosCore/soil_nox_mod.F, which was removed from GEOS-Chem v10-01 and higher versions. The equivalent fix has been made in the HEMCO soil NOx emissions module.

In function PULSING (in module GeosCore/soil_nox_mod.F), a numerical floating-point error may occur if the argument of a logarithm is zero. To prevent this from occurring, we added this fix:

! Prior to 10/28/13:
! Now add a numerical trap to prevent log(0) from occurring, which would
! cause a floating-point error. (mpayer, bmy, 10/28/13)
!            !Initialize new pulse factor (dry period hours)
!            PFACTOR = 13.01 * LOG( DRYPERIOD ) - 53.6
            ! Initialize new pulse factor (dry period hours)
            IF ( DRYPERIOD > 0 ) THEN
               PFACTOR = 13.01 * LOG( DRYPERIOD ) - 53.6
               PFACTOR = -53.6

This issue was discovered with the GEOS-Chem Unit Tester while validating the GEOS-4 4x5 full-chemistry simulation.

--Bob Y. 15:28, 14 November 2013 (EST)

NOTE: The corresponding fix was also added to HEMCO emissions routine PULSING in hcox_soilnox_mod.F90.

--Bob Y. 16:09, 3 June 2014 (EDT)