Lightning NOx emissions

From Geos-chem
Revision as of 21:31, 18 June 2018 by Bmy (Talk | contribs) (OTD/LIS redistribution for GEOS-5)

Jump to: navigation, search

GEOS-Chem v11-02-final will also carry the designation GEOS-Chem 12.0.0. We are migrating to a purely numeric versioning system in order to adhere more closely to software development best practices. For a complete description of the new versioning system, please see our GEOS-Chem version numbering system wiki page.

On this page we list various updates to GEOS-Chem's lightning NOx emissions algorithm.

Generating OTD/LIS factors

When running a GEOS-Chem simulation for a time period that doesn't have OTS/LIS factors, your simulation will stop with the following error:

    Your model framework has not had its
    lightnox code reprocessed for the correction
    to how CLDTOPS are calculated, probably due to
    the lack of your met fields at Harvard.
    Please contact Lee Murray
    (, who can help you
    prepare the necessary modifications and files
    to get lightnox working for you.
    You may remove this trap in lightnox_nox_mod.f
    at your own peril, but be aware that the
    magnitude and distribution of lightnox may be
    You can explicitly set the beta value in your
    HEMCO configuration file by adding it to the
    'Lightning NOx settings:
    # ExtNr ExtName            on/off Species
    103     LightNOx         : on     NO
        --> OTD-LIS scaling  :        1.00e-3
      CALL HCO_ERROR( 'Wrong beta - see information in standard output', RC )

To guarantee that lightning remains reasonable during your simulation period, you'll need to provide Lee Murray with the unconstrained flash rates so he can generate the OTD/LIS factor.

To generate unconstrained flash rates, run GEOS-Chem for your full period and turn off all emissions except lightning in HEMCO_Config.rc:

103     LightNOx          : on    NO
    --> OTD-LIS factors   :       false
    --> OTD-LIS scaling   :       1.000001
    --> CDF table         :       $ROOT/LIGHTNOX/v2014-07/light_dist.ott2010.dat

To speed up the simulation, we also recommend disabling all processes (transport, chemistry, convection, wet deposition, dry deposition) in input.geos. To avoid hitting the above error in this simulation, you can either use OTD-LIS scaling : 1.000001 in HEMCO_Config.rc or manually comment out the IF ( BETA == 1d0 ) trap in HEMCO/Extensions/hcox_lightnox_mod.F90 (you will need to inform Lee of which method you used). Archive monthly mean lightning flash rates using the ND56 diagnostic and send those to Lee Murray.

--Melissa Sulprizio (talk) 16:15, 18 November 2016 (UTC)

OTD/LIS redistribution for GEOS-FP

OTD/LIS factors in GEOS-Chem v10-01

In GEOS-Chem v10-01 and newer versions, the OTD/LIS lightning redistribution factors are read with the HEMCO emissions component. We have created new OTD/LIS data files (in COARDS-compliant netCDF format) for use with HEMCO. These new 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:31, 13 February 2015 (EST)

OTD/LIS factors in GEOS-Chem v9-02

Lee Murray has generated OTD-LIS local redistribution factors for use with the GEOS-FP met fields. The scale factors were based on GEOS-FP met data from April 2012 through September 2013.

You may obtain the new OTD/LIS scale factors from:

cd gcgrid/data/GEOS_4x5/lightning_NOx_201311
mget *
cd gcgrid/data/GEOS_2x2.5/lightning_NOx_201311
mget *
cd gcgrid/data/GEOS_0.5x0.666_NA/lightning_NOx_201311
mget *
cd gcgrid/data/GEOS_0.25x0.3125_NA/lightning_NOx_201311
mget *

The OTD/LIS files are named with the following convention:


Note that the version of the data has been updated from v4 to v5, in order to distinguish them from the files in the previous directory lightning_NOx_201101/.

Code updates have also been made to lightning_nox_mod.f in GEOS-Chem v9-02, so that GEOS-Chem reads in these new OTD/LIS local factors.

--Bob Y. 13:13, 18 June 2014 (EDT)

Update OTD/LIS factors for GEOS-FP through October 2014

These updates were validated with the 1-month benchmark simulation v10-01h and approved on Approved 01 May 2015.

Lee Murray has generated OTD-LIS factors for GEOS-FP through October 2014. These updates will be brought into GEOS-Chem v10-01 via HEMCO.

Users of GEOS-Chem v9-02 may use the updated OTD/LIS factors by following the steps below.

Download the updated OTD/LIS scale factors

You may obtain the latest OTD/LIS scale factors using:

cd gcgrid/data/GEOS_4x5/lightning_NOx_201408
mget *
cd gcgrid/data/GEOS_2x2.5/lightning_NOx_201408
mget *
cd gcgrid/data/GEOS_0.25x0.3125_NA/lightning_NOx_201408
mget *

Modify the code in lightning_nox_mod.F

(1) In routine READ_LOCAL_REDIST, change FILENAME to point to the lightning_NOx_201408 data directory and use the appropriate suffix. The code should now look like this:

      ! OTD-LIS local redist filename for CTH parameterization
      ! Now read from lightning_NOx_201408 (ltm, 7/23/14)
      FILENAME = 
     &        'lightning_NOx_201408/OTD-LIS-Local-Redist.CTH.v5.' // 
     &        TRIM( MODELNAME ) // '.' // GET_RES_EXT()

      ! Prefix directory to file name

      ! Append suffix for GEOS-FP nested grids
#if   defined( GEOS_FP ) && defined( NESTED_CH )
#elif defined( GEOS_FP ) && defined( NESTED_NA )
#elif defined( GEOS_FP ) && defined( NESTED_EU ) 
#elif defined( GEOS_FP ) && defined( NESTED_SE ) 

      ! Append suffix for developmental lightning redistribution files
      ! This file constrains lightning distribution from Apr. 2012-Oct. 2014
      ! (ltm, 12/10/2014)
#if   defined( GEOS_FP )
      FILENAME = TRIM( FILENAME ) // '.v20141210'

(2) In routine READ_LOCAL_REDIST, update the BETA factors for GEOS-FP. The code should now look like this:

#if   defined( GEOS_FP ) && defined( GRID4x5 ) 

      ! GEOS-FP: 4 x 5 global simulation

      ! Constrained with simulated "climatology" for
      ! April 2012 - Oct 2014. Will need to be updated as more
      ! met fields become available (ltm, 2014-12-10).
      IF ( ( GET_YEAR() .eq. 2012 .and. GET_MONTH() .ge. 4  ) .or.
     &     ( GET_YEAR() .eq. 2013                           ) .or.
     &     ( GET_YEAR() .eq. 2014 .and. GET_MONTH() .le. 10 ) ) THEN
         BETA = ANN_AVG_FLASHRATE / 82.373293d0

#elif defined( GEOS_FP ) && defined( GRID2x25 )

      ! GEOS-FP: 2 x 2.5 global simulation
      ! Constrained with simulated "climatology" for
      ! April 2012 - Oct 2014. Will need to be updated as more
      ! met fields become available (ltm, 2014-12-10).
      IF ( ( GET_YEAR() .eq. 2012 .and. GET_MONTH() .ge. 4  ) .or.
     &     ( GET_YEAR() .eq. 2013                           ) .or.
     &     ( GET_YEAR() .eq. 2014 .and. GET_MONTH() .le. 10 ) ) THEN
         BETA = ANN_AVG_FLASHRATE / 260.40253d0

#elif defined( GEOS_FP ) && defined( GRID025x0325 ) && defined( NESTED_CH )

      ! GEOS-FP: Nested China simulation
      ! Constrained with simulated "climatology" for
      ! Jan 2013 - Dec 2013. Will need to be updated as more
      ! met fields become available (ltm, 2014-10-22).
      IF ( ( cYr .eq. 2013 .and. cMt .ge. 1  )   .or. &
           ( cYr .eq. 2013 .and. cMt .le. 12 ) ) THEN
         BETA = ANN_AVG_FLASHRATE / 1052.6366d0

#elif defined( GEOS_FP ) && defined( GRID025x03125 ) && defined( NESTED_NA )

      ! GEOS-FP: Nested N America simulation

      ! Constrained with simulated "climatology" for
      ! April 2012 - Oct 2014. Will need to be updated as more
      ! met fields become available (ltm, 2015-01-13).
      IF ( ( GET_YEAR() .eq. 2012 .and. GET_MONTH() .ge. 4  ) .or. 
     &     ( GET_YEAR() .eq. 2013                           ) .or.
     &     ( GET_YEAR() .eq. 2014 .and. GET_MONTH() .le. 10 ) ) THEN
         BETA = ANN_AVG_FLASHRATE / 720.10258d0

(3) In routine INIT_LIGHTNING_NOX, change FILENAME to point to the lightning_NOx_201408 data directory.

     ! Read lightning CDF from Ott et al [JGR, 2010]. (ltm, 1/25/11)

     ! Define filename
     FILENAME = 'lightning_NOx_201408/light_dist.ott2010.dat'

--Melissa Sulprizio 14:19, 12 January 2015 (EST)

OTD/LIS redistribution for MERRA 2x2.5

This update was tested in the 1-month benchmark simulation v9-01-03g and approved on 27 Feb 2012.

Matt Cooper wrote:

I've been working with Lee Murray on scaling the lightning NOx for use with MERRA at 2x2.5. I've attached the new lightning_nox_mod that Lee made that now includes a scaling factor for MERRA. I've tested it and it produces the expected flash rates and lightning NOx amounts. So this is ready to included in the model.

--Melissa Payer 15:29, 22 February 2012 (EST)

Previous issues that are now resolved

Update WEST_NS_DIV to fix ozone overestimate in southern US

This update was validated with 1-month benchmark simulation v11-01f and 1-year benchmark simulation v11-01k-Run0. This version was approved on 19 Dec 2016.

From Travis et al. (2016, ACP):

We constrain the lightning NOx source with satellite data as described by Murray et al. (2012). Lightning NOx is mainly released at the top of convective updrafts following Ott et al. (2010). The standard GEOS-Chem model uses higher NOx yields for midlatitudes lightning (500 mol flash-1) than for tropical (260 mol flash-1) (Huntrieser et al. 2007, 2008; Hudman et al., 2007; Ott et al., 2010) with a fairly arbitrary boundary between the two at 23° N in North America and 35° N in Eurasia. Zhang et al. (2014) previously found that this leads GEOS-Chem to overestimate background ozone in the southwestern US and we find the same here for the eastern US and the Gulf of Mexico. We treat here all lightning in the 35° S-35° N band as tropical and this remove the distinction between North America and Eurasia.

Katie Travis wrote:

All that is needed [for this update] is to change the following line in hcox_lightnox_mod.F90 from
 REAL*8,  PARAMETER            :: WEST_NS_DIV   =  23d0
 REAL*8,  PARAMETER            :: WEST_NS_DIV   =  35d0

--Melissa Sulprizio (talk) 20:57, 2 December 2016 (UTC)

BETA values for North America for years after 2008

If you are using the North-American Nested-Grid simulation for years post-2008, then you should be aware of the following. We will add this update into GEOS-Chem v9-01-03.

Lee Murray wrote:

Since the operational version of GEOS5 used for the assimilation by GMAO changed in October 2008 from 5.1.0 to 5.2.0, which use different convection schemes, the lightning redistribution (i.e., satellite climatological constraint) needs to be determined for 5.2.0 separately. However, Harvard doesn't host Nested NA 2009-2010, so I couldn't generate the necessary input files until others had sent me the unconstrained lightning flash rates who had previously downloaded from the Dalhousie archive with those years. You should expect an annual average about 0.005 Tg N d-1 across the North American domain, with a summertime peak of about 0.01 Tg N d-1.
However, a few warnings. Using the attached lightning constraint will be an improvement over running unconstrained, however there are substantial interannual changes in the lightning distribution -- especially at the nested horizontal resolution. The constraint will make the 2009-2010 lightning distribution that of the 1995-2005 climatological mean, and therefore perhaps not be indicative of actual lightning in 2009 or 2010. And since only two years are used to generate a simulated climatology for comparison with the long term satellite climatology, the problem may be exacerbated.

--Bob Y. 16:07, 28 February 2012 (EST)

The common block bug fix

This code has been removed from GEOS-Chem. NOx emissions are now handled by HEMCO.

Lee Murray has identified a bug in the existing code (GEOS-Chem v7-04-12) which manifests itself when lightning emissions are turned off in GEOS-Chem. The bug causes non-physical values to propagate through the tracer array...this shows up as anomalous CO concentrations at high altitudes over the tropics.

Lee Murray wrote:

The bug of simply turning off lightning in input.geos in a clean build of GEOS-Chem v7-04-12 causing the CO (and other species) to explode has been fixed. (see attached)
We use common block arrays to pass lightning and aircraft (GEMISNOX) and soil (GEMISNOX2) emissions to the SMVGEAR solver. If a common block is called only in a subroutine, apparently (perhaps architecture/compiler-specific) it is able to occasionally lose its values (I had to really dig up old comments on F77 programming), which is feeding junk values into the model.
I don't know if this will correct the problems that Ray and I had with the local-rescaling lightning as well. It is quite possible that this is also common block error, though maybe not. I will continue to investigate.
The only sure way to eliminate this problem for certain is to eliminate the use of common block arrays (which is something that's been on the to-do list for a while). If we're going to be overhauling lightning for v7-04-13, I would strongly recommend that we switch over to the use of allocated arrays to hold the lightning emissions. (This would then also require modifying at least the aircraft emissions similarly).
Do you agree?

ERROR: note weird values in CO

File:Lnox common block error.png

FIXED: weird values in CO disappear

File:Lnox common block error fixed.png

Bob Yantosca replied that the preferred way to fix this error would be to replace the common block array GEMISNOX with separate module arrays for lightning NOx (EMIS_LI_NOx) and Aircraft NOx (EMIS_AC_NOx). This fix will be implemented into GEOS-Chem v7-04-13.

Bob Yantosca replied:

It's probably better to just take the GEMISNOX array out of the common block completely and to create separate module arrays for lightning and aircraft emissions. That should get rid of any instability.
Indeed, some of these common-block errors can be very esoteric. As Lee said, they may be specific to a given compiler/platform combination. Some of these types of errors may also depend on what level of optimization that you use to compile the code. Fortran optimizers can do stuff like try to force common blocks to align themselves in multiples of 64kb chunks or other weird stuff (unless you tell it not to).
We do have some common blocks still in GEOS-Chem, mainly in the legacy code and 3rd-party code sections (i.e. emissions, SMVGEAR, FAST-J, ISORROPIA, etc.). It is often difficult to totally remove all of the common blocks in the older code sections without making changes in a lot of other places as well. Newer parts of GEOS-Chem have been written to the F90 specifications.
Bob Y.

Replacing the near-land algorithm


Lee Murray (see correspondence below) has submitted a revised algorithm for lightning NOx emissions. This will be added into GEOS-Chem internal version v7-04-13.

Lee Murray wrote:

Here's a list of the changes in the lightning code over v7.04.12 that I'm about to send over to Bob for inclusion into the standard model -- these are all what I have been running my sensitivity simulations with, and I think are improvements. I just want to make sure that these sound reasonable to everyone -- please let me know if you have any concerns/objections.
  1. Elimination of "near-land" treatment -- reverting to a single "lightning_nox_mod.f" ("lightning_nox_nl_mod.f" will be removed). This offers a significant improvement in correlation with the climatology on its own.
  2. Elimination of all top-down scaling -- Attempt to have a physically-based parameterization.
  3. Elimination of emissions per path length. This relied on the grossly-simplified assumption that the relative path lengths vary as the linear ratio between the vertical distances between the negative charge layer with the ground and the cloud top heights for CG or IC flashes, respectively. The CG and IC path lengths (which have significant horizontal components and many multiple strokes per flash) almost definitely do not follow this relationship -- and we don't differentially distribute vertically anyway. In the future, we can look at aggregated pdfs of path lengths available from single-storm measurements to make a more appropriate distinction (hopefully in conjunction with different vertical pdfs). This was already done for N MIdLats, but now for tropics too.
  4. Tropical flashes at 260 mol/fl -- from Randall's constraint of 4.4 Tg N in the tropics and the OTD-LIS climatology for the region he considered. (Versus 500 mol/fl currently in the model for N MidLat, as per Rynda's work). Both of these are within the range of values in the literature. The 500 is at the upper range. The 260 is very close to the mean/median (and will be applied to ~80% of all flashes).
  5. New Local Scaling -- Now monthly rather than seasonally, since we have the high res monthly climatology and there are significant intra-seasonal spatial variability in the lightning distribution -- particularly over the SE USA. Also, set the redist factor in boxes where the model parameterization calculates no lightning over the OTD-LIS window (May 1995-Dec 2005) but OTD-LIS saw some to 1.0 (I believe Bastien set them to 0.0), so as not to suppress future years that may want to put lightning there via the param.
    (For now, have inserted a logical trap to cancel the simulation if the regional redistribution is selected. Once my study is done, then we just remove the trap in a future version)
  6. New input.geos mid-level scaling option -- If turned on (may be used with or without any of the redistributions), it will multiply every box by a uniform factor determined such that the 11-year parameterized and observed average annual flash rates (~46 flashes per second) are equal. This will be a highly recommended feature. CTH does an okay job without it, but PRECON and MFLUX really need it to be brought to the correct order of magnitude (at least in GEOS4). However, leave it optional so that one can use the unmodified physical parameterizations as well if they so choose. In the future, this may be modified to be a year-specific scaling factor as determined by the LIS observations.
  7. Recommended options in "input.geos"
  => Use lightning NOx?  : T
     => Scale glb flrate : T
     => OTD reg redist?  : F
     => OTD local redist?: T
     => Use CTH param?   : T
     => Use MFLUX param? : F
     => Use PRECON param?: F

Obsolete information

These sections pertain to code or data that has been removed from the most recent versions of GEOS-Chem. We shall keep this information here for reference.