From Geos-chem
Revision as of 21:50, 8 July 2011 by Jaf (Talk | contribs) (Code.v8-03-02)

Jump to: navigation, search

On this page we include information relevant to the GEOS-Chem mercury simulations. Please also visit our Global Terrestrial Mercury Model page, which is an option that can be used with the GEOS-Chem mercury simulation.

For a list of current and on-going mercury projects, please visit the Hg and POPs Working Group page!



Negative aquatic mercury concentrations

There was a bug in ocean_mercury_mod.f that occasionally allowed the concentrations of aqueous mercury in the ocean to be negative. This has been fixed by changing the way the rate of change of ocean mixed layer depths is calculated and adding error traps to set negative mixed layer depths and negative oceanic mercury concentrations to zero. This will be standard in GEOS-Chem v9-01-02.

--Jenny Fisher 17:46, 8 July 2011 (EDT)


There was a bug introduced in v8-02-03 with the introduction of the logical LGCAPEMIS, which is designed to turn on or off scaling of GEIA emissions to Streets' 2006 regional GCAP emissions. This logical was then also used to turn off Hg emitted through transpiration, but this should be handled independently from the anthropogenic emissions. We have now introduced a new logical LVEGEMIS that allows you to turn these transpiration emissions on or off independently. This will be standard in GEOS-Chem v9-01-02.

--Jenny Fisher & Bob Y. 09:43, 13 April 2011 (EDT)

Omitted code in Hg simulation

Some of the updates to the Hg code from Holmes et al. (2010) didn't get properly implemented in v9-01-01. We haven't looked *extensively* through the code, but a quick look through the obvious mercury routines showed a number of differences:

   (1) In LAND_MERCURY_FLUX (land_mercury_mod.f)

       The first IF statement was
          IF ( (SNOW_HT > 1D0) .OR. (IS_ICE(I,J)) ) THEN

       But should have been
          IF ( (IS_ICE(I,J)) .OR. (IS_LAND(I,J) .AND. SNOW_HT>10d0) )THEN

   (2) In BIOMASSHG (land_mercury_mod.f)

       We currently have (with Bess's 50% reduction):

       However, we should use this value from Holmes et al 2010:

   (3) In SOILEMIS (land_mercury_mod.f):

       This IF statement was
          IF ( IS_LAND(I,J) .AND. (SNOW_HT < 1d0) ) THEN     

       But should have been
          IF ( IS_LAND(I,J) .AND. (SNOW_HT < 10d0) ) THEN

   (4) In SNOWPACK_MERCURY_FLUX (land_mercury_mod.f):

       Residence time when T > -3C was 7 days; i.e.
          K_EMIT = 1.6D-6

       Should have been 3 weeks; i.e.
          K_EMIT = 5D-7 

   (5) In ADD_HG2_SNOWPACK (depo_mercury_mod.f):

       This IF statement was
          IF ( (SNOW_HT > 1d0) .OR. (IS_ICE(I,J)) ) THEN

       But should have been
          IF ( (IS_ICE(I,J)) .OR. (IS_LAND(I,J) .AND. SNOW_HT > 10d0) ) THEN

       We allowed 100% of deposited Hg available for emission; i.e.
          SNOW_HG(I,J,NN) = SNOW_HG(I,J,NN) + MAX( DEP_HG2, 0D0 )

       This Should have only been 60%; i.e.
          SNOW_HG(I,J,NN) = SNOW_HG(I,J,NN) + MAX( 0.6D0*DEP_HG2, 0D0 )

   (6) In OCEAN_MERCURY_FLUX (ocean_mercury_mod.f):

       We had the old definition
          IF ((ALBD(I,J) <= 0.4d0) .and. (FRAC_L < 0.8d0) .and. (MLDCM > 0.99d0)) THEN

       Holmes et al 2010 used consistent criteria for ocean/land/ice categories
          IF ( ( IS_WATER(I,J) ) .AND. ( MLDCM > 0.99d0 ) ) THEN

This fix will be standardized in GEOS-Chem v9-01-02. In the meantime, we have released a post-release patch for v9-01-01. Use the "Git Pull" command to apply the patch into your v9-01-01 code directory:

git pull git://  master

The patch contains 3 commits named:

Fixed minor error in depo_mercury_mod.f
Add comments to denote updates to Holmes 2010 Hg
Update to Holmes et al. 2010 version

and is tagged as v9-01-01-Patch-Hg.

--Jenny Fisher & Bob Y. 09:43, 13 April 2011 (EDT)

Division by zero error

There is a div by 0 error in mercury_mod.f FUNCTION GET_BR that affects v8-03-02 and v9-01-01. It's a quick fix.

  BR_FAC = ( 1440d0 / TTDAY(I,J) )
  BR_FAC = SAFE_DIV( 1440d0, TTDAY(I,J), 0d0)

  BR_FAC = BR_FAC / ( 4D-4 * TTDAY(I,J) )
  BR_FAC = SAFE_DIV( BR_FAC, 4D-4* TTDAY(I,J), 0d0)

  And add: 
  !Refernces to F90 modules

Sometimes TTDAY is 0, so BR_FAC becomes Inf and C_BR becomes Inf. The problem trickles down and shows up as 'PL-HG2-$' diagnostics Hg2_OH, Hg2_O3, Hg2_BR, and Br diagnostics having NaNs in their arrays. Adding the SAFE_DIV fixes the problem. (H Amos, 9 Mar 2011)

This fix will be standardized in GEOS-Chem v9-01-02.

--hamos 10:46, 9 March 2011 (EST)
--Bob Y. 10:46, 9 March 2011 (EST)


Diagnostics fix for Hg simulation (Helen Amos, 30 September 2010):

If the WETDLS-$ and WETDCV-$ diagnostics are only showing up for Hg2 (and not for HgP) in your ctm.bpch file, make the following change to the 'Diagnostics Menu' in input.geos:

 ND38: Cld Conv scav loss: 47   all
 ND39: Wetdep scav loss  : 47   all
 ND38: Cld Conv scav loss: 47   2 3
 ND39: Wetdep scav loss  : 47   2 3

Recommendations for running code versions 8-03-02 and later (eds):

  1. Reduce geogenic emissions by 50%
    • ref. Soerensen et al. 2010
    • mercury_mod.f line 3470:
     EHg0_nt = EHg0_nt / SEC_PER_YR
     EHg0_nt = EHg0_nt * 0.5D0
  2. Reduce biomass burning emissions by 50%
    • ref. Soerensen et al. 2010
    • land_mercury_mod.f line 225:
     !REAL*8, PARAMETER  :: BBRatio_Hg_CO = 2.1D-7
     REAL*8, PARAMETER  :: BBRatio_Hg_CO = 1.05D-7
  3. Reduce intermediate water mercury concentration in Southern Ocean to 0.9pM total
    • ref. low end of uncertainty range Sunderland and Mason 2007
    • ocean_mercury_mod.f line 2950:
     !CDEEPSAT = (/ 1.0d-10, 5.0d-10, 5.0d-10 /)
     CDEEPSAT = (/ 0.8d-10, 4.1d-10, 4.1d-10 /)
  4. Reduce concentration of BrO in Arctic during depletion events to 5pptv
    • ref. low end of uncertainty range in Holmes et al. 2010
    • ref. low [BrO] observed Neuman et al. 2010
    • mercury_mod.f line 3805:
  5. Adopt Qiaoqiao Wang's modification to rainout & washout (this is standard in GEOS-Chem v9-01-01 and later)
    • ref. Wang et al. 2011
    • uncomment wetscav_mod.f line 4101:
     IF ( PDOWN(L,I,J) > 0d0 ) THEN
      ! Washout occurs where there is no rainout
      F_WASHOUT = MAX( FTOP - F_RAINOUT, 0d0 )
      F_RAINOUT = 0d0
      F_WASHOUT = 0d0
    • comment out wetscav_mod.f line 4121:
     !F_RAINOUT = 0d0
     !F_WASHOUT = 0d0
     !IF ( PDOWN(L,I,J) > 0d0 ) THEN
     !  IF (QQ(L,I,J) > 0d0) THEN
     !  ENDIF
     !  F_WASHOUT = MAX( FTOP - F_RAINOUT, 0d0 )

Previous discussions (6/2008)

  1. Standardize the solver. Everyone should use the solver Chris developed for the Hg chemistry
    (located at ~cdh/GC/RevisedChem.v7-04-06/mercury_mod.f)
    • outstanding issue - dry dep of Hg0* <- currently working on this (eds)
    • See GEOS-Chem v8-03-02 and later for Holmes et al. 2010 Hg+Br simulation.
  2. Catalog all emissions options and develop clear flagging system to choose your own adventure. This will include:
    • different anthropogenic emissions scenarios/corrections (i.e Jaffe vs. Streets) <- going to work on the anthro emissions soon (eds),
    • different land emissions. <- nvd will work on this
    • Logicals implemented to select anthropogenic emissions from GEIA 2000, GEIA 2005, or GEIA scaled to Streets et al. 2006 regional totals.
  3. Diagnostics. See separate section below.
    • Diagnostics have been updated.
  4. Comment everything in the code. Remove old bits of code that are hanging around & commented out.
    • Ongoing.
  5. GEOS-5
    • This is the standard meteorology to use at present. MERRA is in development.
  6. Get the land stuff out of ocean_mercury_mod.f and into it's own module <- nvd will work on this
    • Implemented by ccarouge v8-03-02.

Chemistry 'issues'

Dry deposition of HgP over snow/ice

The HgP dry deposition velocity over snow/ice is now set to a constant value to better match observational constraints. HgP is treated the same as all other fine aerosols in this respect. This update will be standard in v9-01-02. For more information see the dry deposition page. (Jenny Fisher, Harvard).

Previous discussions

  1. Oxidant.
    • Chris has a simulation with Hg-Br chemistry and SS aerosol deposition; the global budget is ok, but the Br concentrations in the BL are too low to generate diurnal cycles. (cdh working on it)
  2. Snow/ice scavenging of HgII
    • Cold-temperature wet scavenging of HgII is now included in the standard code.
  3. Dry deposition of "aqueous HgII.
    • (Explanation from Chris: We calculate the fraction of HgII, Fg, which is gas phase. But we're currently applying the dry deposition velocity to both gas and aqueous fractions. I think it would be better to deposit the aqueous fraction at the velocity of HgP; this would be slower dep, but I don't know how much. This is definitely up for discussion.)
    • See Holmes et al. 2010 for discussion of chemistry in standard version.



  1. Helen Amos is developing diagnostics for reactive gaseous mercury and reactive particulate mercury.
  2. Bess Corbitt is developing diagnostics for a tagged-tracer simulation with 17 world regions. For example, when running with this option, for prompt recycling of deposited mercury, instead of HG-SRCE category and Hg0_ln tracer name for the total tracer, I would have category HG0-RECY and tracername Hg0_usa, Hg0_can, etc.

Previous discussions

Here are some suggested changes:

  1. Emissions should have units 'kg/m2/s' or something of the form 'mass/area/time' (they are currently 'kg'). The HG-SRCE diagnostic currently has all of the Ocean tracers and fluxes; these should go elsewhere.
  2. The Ocean Hg0, Hg2, HgC should have concentration units not kg. Is 'molar' the best choice? Fluxes of these should be in concentration/time, not kg.
  3. The ocean restart files should have concentration units not kg. They currently use the category 'OCEAN-HG' which would make sense for the ND03 ocean Hg0, Hg2, HgC output too.
  4. 'PL-HG2-$' doesn't really describe all of the fluxes in our model. There are a lot of diagnostic quantities which are either chemical P/L fluxes or rate constants. I think these should all be in one diagnostic called something like 'PL-HG-$' (or maybe 'PL-HG-A', 'PL-HG-O' to separate the atmosphere and ocean). The fluxes in this diagnostic would include redox in air and water, colloidal sinking, ocean-atmosphere piston velocity, ...

Here are the current GEOS-Chem Hg outputs

  1 : IJ-AVG-$   23     Hg0     1         pptv 157776.00(2003010100)  72 46 30
  2 : IJ-AVG-$   23     Hg2     2         pptv 157776.00(2003010100)  72 46 30
  3 : IJ-AVG-$   23     HgP     3         pptv 157776.00(2003010100)  72 46 30
  4 : WETDCV-$   23     Hg2  3002         kg/s 157776.00(2003010100)  72 46 30
  5 : WETDCV-$   23     HgP  3003         kg/s 157776.00(2003010100)  72 46 30
  6 : WETDLS-$   23     Hg2  3002         kg/s 157776.00(2003010100)  72 46 30
  7 : WETDLS-$   23     HgP  3003         kg/s 157776.00(2003010100)  72 46 30
  8 :  HG-SRCE   23  Hg0_an 34001           kg 157776.00(2003010100)  72 46  1
  9 :  HG-SRCE   23  Hg0_aq 34002           kg 157776.00(2003010100)  72 46  1
 10 :  HG-SRCE   23  Hg0_oc 34003           kg 157776.00(2003010100)  72 46  1
 11 :  HG-SRCE   23  Hg0_ln 34004           kg 157776.00(2003010100)  72 46  1
 12 :  HG-SRCE   23  Hg0_na 34005           kg 157776.00(2003010100)  72 46  1
 13 :  HG-SRCE   23  Hg2_an 34006           kg 157776.00(2003010100)  72 46  1
 14 :  HG-SRCE   23  Hg2_aq 34007           kg 157776.00(2003010100)  72 46  1
 15 :  HG-SRCE   23  Hg2_sk 34008           kg 157776.00(2003010100)  72 46  1
 16 :  HG-SRCE   23  HgP_an 34009           kg 157776.00(2003010100)  72 46  1
 17 :  HG-SRCE   23    KwHg 34010         cm/h 157776.00(2003010100)  72 46  1
 18 :  HG-SRCE   23     HgC 34011           kg 157776.00(2003010100)  72 46  1
 19 :  HG-SRCE   23 Hg_to_C 34012           kg 157776.00(2003010100)  72 46  1
 20 : PL-HG2-$   23 Hg2_Hg0 35001           kg 157776.00(2003010100)  72 46 30
 21 : PL-HG2-$   23  Hg2_OH 35002           kg 157776.00(2003010100)  72 46 30
 22 : PL-HG2-$   23  Hg2_O3 35003           kg 157776.00(2003010100)  72 46 30
 23 : PL-HG2-$   23  Hg2_SS 35004           kg 157776.00(2003010100)  72 46  1
 24 : PL-HG2-$   23 Hg2_SSR 35005           /s 157776.00(2003010100)  72 46  1
 25 : DRYD-FLX   23   Hg0df 36001  molec/cm2/s 157776.00(2003010100)  72 46  1
 26 : DRYD-FLX   23   Hg2df 36002  molec/cm2/s 157776.00(2003010100)  72 46  1
 27 : DRYD-FLX   23   HgPdf 36003  molec/cm2/s 157776.00(2003010100)  72 46  1
 28 : DRYD-VEL   23   Hg2dv 37002         cm/s 157776.00(2003010100)  72 46  1
 29 : DRYD-VEL   23   HgPdv 37003         cm/s 157776.00(2003010100)  72 46  1

I think we should change lines 8-24 (I've kept the same line numbers and TRCNAME, but changed CATEGORY, TRC, or UNIT):

      CATEGORY  TRCNAME    TRC         UNIT 
  8 :  HG-SRCE   Hg0_an  34001      kg/m2/s 
 10 :  HG-SRCE   Hg0_oc  34002      kg/m2/s 
 11 :  HG-SRCE   Hg0_ln  34003      kg/m2/s 
 12 :  HG-SRCE   Hg0_na  34004      kg/m2/s 
 13 :  HG-SRCE   Hg2_an  34005      kg/m2/s
 16 :  HG-SRCE   HgP_an  34006      kg/m2/s 
  9 : OCEAN-HG   Hg0_aq  xxxx1        mol/L 
 14 : OCEAN-HG   Hg2_aq  xxxx2        mol/L 
 18 : OCEAN-HG   HgC     xxxx3        mol/L 
 20 :  PL-HG-A   Hg2_Hg0 35001      kg/m3/s 
 21 :  PL-HG-A   Hg2_OH  35002      kg/m3/s 
 22 :  PL-HG-A   Hg2_O3  35003      kg/m3/s 
 23 :  PL-HG-A   Hg2_SS  35004      kg/m3/s 
 24 :  PL-HG-A   Hg2_SSR 35005           /s
 15 :  PL-HG-O   Hg2_sk  xxxx1      kg/m3/s 
 19 :  PL-HG-O   Hg_to_C xxxx2      kg/m3/s
 17 :  PL-HG-O   KwHg    xxxx3         cm/h

The only thing I have to add is that at first I didn't realize that wet deposition of Hg(II) was composed of both WETDCV and WETDLS. Is it important to save those components out as 2 separate parts? (nvd) To answer Nicole, it is useful to have the large scale and convective wet scavenging written out separately for comparison to wet deposition observations. They are different processes in the model and can tell us different things about where the model is performing well and where it needs improvement (for example, convective scavenging over the Gulf Coast region). (eds)


GEOS-Chem v8-03-02 and higher versions provide the option to use the Global Terrestrial Mercury Model, which is a detailed land-surface model for use with the Hg simulations. Please see the following references for more information.

  1. Global Terrestrial Mercury Model wiki page
  2. GTMM User's Manual (PDF)

Soil Emissions

Unless you are running GTMM, soil emissions are a function of soil mercury concentrations in a prespecified file. The soil concentrations distributed in the mercury_201007 data directory were calculated by Holmes et al. (2010) using a highly-modified version of v8-02-03 and the method of Selin et al. (2008). This method calculates steady-state soil concentration and emissions for the preindustrial period, then imposes a 15% enhancement according to anthropogenic Hg deposition.

In principle, the soil Hg concentrations should be recalculated after any changes to the model, meteorology, or resolution to ensure self-consistent treatment of deposition and emissions. In practice, the changes to soil emissions may be small for some model updates and recalculating soil Hg may be unnecessary. But it is the model users' responsibilities to determine when to update his or her soil Hg files.

Users who want to update their soil Hg files may use IDL code developed by Chris Holmes. Please contact him directly.


Holmes, C.D., D.J. Jacob, E.S. Corbitt, J. Mao, X. Yang, R. Talbot, and F. Slemr, Global atmospheric model for mercury including oxidation by bromine atoms, Atmospheric Chemistry and Physics, 10, 12,037-12,057, 2010

Soerensen, A.L., E.M. Sunderland, C.D. Holmes, D.J. Jacob, R.M. Yantosca, H. Skov, J.H. Christensen, and R.P. Mason, An improved global model for air-sea exchange of mercury: High concentrations over the North Atlantic, Environ. Sci. Technol., 44, 8574-8580, 2010

Smith-Downey, N.V., Sunderland, E.M., and Jacob, D.J., Anthropogenic impacts on global storage and emissions of mercury from terrestrial soils: insights from a new global model , J. Geophys. Res., 115, G03008, 2010

S. Strode, L. Jaeglé, and N. E. Selin, Impact of mercury emissions from historic gold and silver mining: Global modeling, Atmos. Environ., 43, 2012-2017,2009

Holmes, C.D., D.J. Jacob, R.P. Mason, D.A. Jaffe, Sources and deposition of reactive gaseous mercury in the marine atmosphere,Atmospheric Environment,43, 2278-2285, 2009

S. Strode, L. Jaeglé, D. A. Jaffe, P. C. Swartzendruber, N. E. Selin, C. Holmes, and R. M. Yantosca, Trans-Pacific Transport of Mercury, J. Geophys. Res., 112, D02308, 2008

Selin, N.E. and D.J. Jacob. Seasonal and spatial patterns of mercury wet deposition in the United States: North American vs. intercontinental sources , Atmospheric Environment, 42, 5193-5204, 2008

Selin, N.E., D.J. Jacob, R.M. Yantosca, S. Strode, L. Jaegle, and E.M. Sunderland, "Global 3-D land-ocean-atmosphere model for mercury: present-day vs. pre-industrial cycles and anthropogenic enrichment factors for deposition", Global Biogeochemical Cycles , 22, GB2011, 2008

Selin, N.E., D.J. Jacob, R.J. Park, R.M. Yantosca, S. Strode, L. Jaegle, and D. Jaffe, Chemical cycling and deposition of atmospheric mercury: Global constraints from observations, J. Geophys. Res, 112, DO2308, doi:10.1029/2006JD007450, 2007

Strode, S.A., L. Jaegle, N.E. Selin, D.J. Jacob, R.J. Park, R.M. Yantosca, R.P. Mason, and F. Slemr, Air-sea exchange in the global mercury cycle, Global Biogeochemical Cycles, 21, GB1017, 2006

Holmes, C. D., D. J. Jacob, and X. Yang, Global lifetime of elemental mercury against oxidation by atomic bromine in the free troposphere , Geophys. Res. Lett. 33, L20808, 2006