Difference between revisions of "Mercury"

From Geos-chem
Jump to: navigation, search
(Code updates for GEOS-Chem v11-01)
(Incorrect Arctic Hg Riverflow)
Line 160: Line 160:
 
==== Incorrect Arctic Hg Riverflow ====
 
==== Incorrect Arctic Hg Riverflow ====
  
'''''This update corrects a problem identified in v11-01c and will be included in the 1-month benchmark simulation [[GEOS-Chem v11-01 benchmark history#v11-01e|v11-01e]]. Additional benchmarking of the Hg simulation is in progress.'''''
+
'''''This update corrects a problem introduced in v11-01c and will be included in the 1-month benchmark simulation [[GEOS-Chem v11-01 benchmark history#v11-01e|v11-01e]]. Additional benchmarking of the Hg simulation is in progress.'''''
  
 
'''''[[User:Jenny Fisher|Jenny Fisher]] writes:'''''
 
'''''[[User:Jenny Fisher|Jenny Fisher]] writes:'''''

Revision as of 22:59, 23 November 2015

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!

Contents

Code updates for GEOS-Chem v11-01

In this section we describe the updates made to the mercury simulation in each recent GEOS-Chem model version.

Hg emission updates

These updates were included in the 1-month benchmark simulation v11-01c and approved on 14 Sept 2015. Additional benchmarking of the Hg simulation is in progress.

Yanxu Zhang and Amanga Giang prepared new Hg emissions with adjustments for in-plume reduction and emission controls. The following emission inventories will be implemented in GEOS-Chem v11-01c via the HEMCO emissions component.

NEI2011

TBD

NPRI2011

TBD

UNEP2010

AMAP/UNEP 2010 inventory, disaggregated into stationary combustion sources, industrial sources, and intentional use & product waste associated sources.

--Melissa Sulprizio (talk) 13:57, 20 August 2015 (UTC)

Hg ocean rate coefficients

This update was included in the 1-month benchmark simulation v11-01c and approved on 14 Sept 2015. Additional benchmarking of the Hg simulation is in progress.

Shaojie Song wrote:

Two coefficients in the GEOS-Chem Hg slab ocean module, the dark oxidation reaction rate of aqueous Hg0 (k_ox_dark) and partitioning coefficient between aqueous HgII and HgP (Kd_part), were optimized based on constraints from worldwide atmospheric Hg0 observations. Applying these two optimized coefficients in the GEOS-Chem Hg simulations could better reproduce the observed seasonality of atmospheric Hg0 concentrations and also change the mercury budget in the global ocean. For details please refer to Song et al. (2015). This option of using the optimized ocean coefficients can be turned on by setting LOCEANCOEF=.TRUE. in mercury_mod.F. The aqueous-phase photochemical reduction rate of atmospheric HgII (K_RED_OH or K_RED_JNO2 in mercury_mod.F) should be also tuned to match the modeled concentrations of GEM/TGM.
Song, S., Selin, N. E., Soerensen, A. L., Angot, H., Artz, R., Brooks, S., Brunke, E.-G., Conley, G., Dommergue, A., Ebinghaus, R., Holsen, T. M., Jaffe, D. A., Kang, S., Kelley, P., Luke, W. T., Magand, O., Marumoto, K., Pfaffhuber, K. A., Ren, X., Sheu, G.-R., Slemr, F., Warneke, T., Weigelt, A., Weiss-Penzias, P., Wip, D. C., and Zhang, Q.: Top-down constraints on atmospheric mercury emissions and implications for global biogeochemical cycling, Atmos. Chem. Phys., 15, 7103-7125, doi:10.5194/acp-15-7103-2015, 2015.

--Melissa Sulprizio (talk) 13:57, 20 August 2015 (UTC)

Hg ocean MLD bug fixes

These fixes were included in the 1-month benchmark simulation v11-01c and approved on 14 Sept 2015. Additional benchmarking of the Hg simulation is in progress.

Following the release of GEOS-Chem v10-01 Amanda Giang and Shaojie Song identified issues in the mercury simulation that they attributed to the ocean module.

Amanda Giang wrote:

First, a thanks to Bob for following up on our email about problems with the ocean in the mercury simulation in May! I’ve had a chance to look into this a little further and think that the main issue could be that discrepancies between the files used for the calculation of change in ocean mixed layer depth (MLD) are leading to unstable, growing ocean mercury mass in certain grid cells. I think the following changes might address this problem:
1. The default HEMCO_Config.rc file for the mercury simulation points to mld.geos.2x25.nc for MLD (an older version of the file) while the previous and next month MLD functions, which still read from bpch, point to a newer version of this file, MLD_DReqDT.geos.4x5, which has some differences in magnitude and distribution. Pointing to the consistent file in HEMCO (MLD_DReqDT.geos.2x25.nc) reduces the Hg0 ocean anomaly considerably. See this benchmark that compares this fix to a baseline v10-01 run.
2. The previous and next month MLD functions read MLD from a bpch file at the run resolution, while current month MLD is read from the HEMCO netcdf input, at 2x2.5 (and then regridded?). I converted the 4x5 bpch MLD to netcdf, available here, and ran with that in a 4x5 simulation, and the ocean seems to look fine. See this benchmark that compares this run to a v9-02 run (different meteorological year, but gives a sense of the pattern). The 2x2.5 simulation, with the 2x2.5 MLD, also looks fine. This benchmark compares the v10-01 2x2.5 run with the default reference from the mercury benchmark code (I didn’t have a 9-02 2x2.5 run on hand). Looking at the 4x5 benchmark, it looks like there might be something strange with the Hg2/HgP partitioning in the 4x5 run. I’m not sure if that might be related to the resolution of the input files as well?
3. Shaojie Song had previously suggested a change to the GET_MLD_FOR_LAST_MONTH routine to address hot spots in v9-02, which also reduces the Hg0 ocean anomaly. An excerpt from his previous email is below:
A temporal way to fix this bug is to not call the MLD of the last month and set the MLD according to the values in the first month (below is the difference in ocean_mercury_mod.F):
    2025,2027d2024
    <       MLDav = MLD
    <       dMLD  = 0.0
    < 
    2029,2031c2026,2028
    <       !DO J = 1, JJPAR
    <       !DO I = 1, IIPAR
    <          !dMLD(I,J) = (MLD(I,J) - prevMLD(I,J)) / (3.6d3 *24d0 * 30.5d0)
    ---
    >       DO J = 1, JJPAR
    >       DO I = 1, IIPAR
    >          dMLD(I,J) = (MLD(I,J) - prevMLD(I,J)) / (3.6d3 *24d0 * 30.5d0)
    2033,2035c2030,2032
    <          !MLDav(I,J) = prevMLD(I,J) + 0.5d0 * (MLD(I,J) - prevMLD(I,J))
    <       !ENDDO
    <       !ENDDO
    ---
    >          MLDav(I,J) = prevMLD(I,J) + 0.5d0 * (MLD(I,J) - prevMLD(I,J))
    >       ENDDO
    >       ENDDO

Chris Holmes wrote:

Thanks for tracking down these bugs. We can discard the need to read MLD for multiple months by adding MLD tendency for each month to the 2x25 nc file. HEMCO can read the tendencies as well and regrid them.
The "Hg2/HgP" differences that you see vs the benchmark reference might be due to the change in tracer definitions in v9-02 (I think). Tracers 2 and 3 are now GOM and PBM, respectively. There is no refractory HgP any more but the benchmark reference might be old.

Amanda Giang wrote:

Viral Shah located the problem with partitioning! In READ_HG2_PATITIONING in OCEAN_MERCURY_MOD:
 lines 542 to 547
 #if defined( GRID4x5 ) || defined( GRID05x0666 )
         BULK_CONC(I,J,L) = 1e+9_fpp * ( BULK_CONC(I,J,L) *
      &                     State_Met%AIRDEN(I,J,L)  )
 #elif defined( GRID2x25 )
         BULK_CONC(I,J,L) = ( BULK_CONC(I,J,L) * State_Met%AIRDEN(I,J,L))
 #endif 
Since HEMCO reads the file from the 2x2.5 resolution, the units are already ppbv, and the extra scaling factor at 4x5 isn’t needed. Here’s a benchmark I ran with this change and my previous v10-01 with ocean fixes as the reference.

--Melissa Sulprizio (talk) 13:57, 20 August 2015 (UTC)

Remove in-plume reduction of Hg

Yanxu Zhang wrote:

The in-plume reduction of divalent Hg (HgII) from coal-fired power plants was firstly introduced into the GEOS-Chem model by Zhang et al. (2012). This process was included into the 0.5x0.666 nested-grid model over North America to reconcile the observed relatively low wet deposition flux over Ohio River Valley (ORV) region. This is known to the mercury community as a "Mercury Dilemma": the ORV region has the highest HgII emissions from coal-fired power plants, and the largest acid deposition is indeed observed there, however, the highest wet deposition of HgII is observed at Florida, far south of ORV region. The in-plume reduction hypothesis assumes that the HgII emissions from these power plants are fast reduced back to elemental Hg (Hg0) in the power plant plumes, and Hg0 is a gas and not subject to wet deposition. Later this hypothesis was adopted by Amos et al. (2012) and generalized to a global model study.
An alternative hypothesis for the in-plume reduction relies on the big uncertainties associated with our understanding of the initial speciation of Hg out of the stacks of these power plants. New data showed that the fraction of Hg emissions from the US coal-fired power plants as HgII is much lower than previous thought, due to the co-benefits of the installation of SO2 and NOx emission control instruments such as flue gas desulfurization and selective catalytic reactor (EPA 2011). Similar change was noted by Chinese studies (Zhang et al., 2014; Zhao et al., 2015 ). With these new information regarding emission speciation, plus new observational evidence supporting a weak in-plume reduction process (Landis et al., 2014), we decide to remove this process, or at least weaken it in the standard model.

Reference:

  • Amos, H. M., et al. (2012), Gas-particle partitioning of atmospheric Hg(II) and its effect on global mercury deposition, Atmospheric Chemistry and Physics, 12(1), 591-603.
  • EPA (2011), Air Quality Modeling Technical Support Document: EGU Mercury Analysis, U.S. Environmental Protection Agency, Office of Air Quality Planning and Standards, Air Quality Assessment Division, Research Triangle Park, NC 27711
  • Landis, M. S., J. V. Ryan, A. F. Ter Schure, and D. Laudal (2014), Behavior of Mercury Emissions from a Commercial Coal-Fired Power Plant: The Relationship between Stack Speciation and Near-Field Plume Measurements, Environ. Sci. Technol., 48(22), 13540-13548.
  • Zhang, Y., et al. (2012), Nested-grid simulation of mercury over North America, Atmospheric Chemistry and Physics Discussions, 12, 2603-2646.
  • Zhang, L., et al. (2015), Updated Emission Inventories for Speciated Atmospheric Mercury from Anthropogenic Sources in China, Environ Sci Technol.
  • Zhao, Y., H. Zhong, J. Zhang, and C. P. Nielsen (2014), Evaluating the effects of China's pollution control on inter-annual trends and uncertainties of atmospheric mercury emissions, Atmospheric Chemistry and Physics Discussions, 14(19), 26803-26855.

--Melissa Sulprizio (talk) 18:05, 26 May 2015 (UTC)

Updates to Arctic Hg processes

These updates were included in the 1-month benchmark simulation v11-01c and approved on 14 Sept 2015. Additional benchmarking of the Hg simulation is in progress.

Updates are based on Fisher et al. (2012) and Fisher et al. (2013) and are detailed in those publications and their supplements. They include:

Replace Arctic Mixed Layer Depths
We replace standard MLD values with a measured climatology over the Arctic Ocean from Toole et al. (2010).
Replace Arctic NPP and Chl
We now use new present-day (2009) fields for NPP and Chl based on Jin et al. (2012) as compiled by Anne Soerensen. These are scaled interannually using the relationship between Arctic NPP and summer minimum sea ice extent derived by Arrigo & van Djiken (2011). Values from their paper were converted to an interannual scaling factor relative to 2009.
Change Hg2
HgP fractionation in deep Arctic Ocean:Instead of a 50:50 split, we change CDEEPARC to be primarily as Hg2 (80%).
Change Hg partitioning in Arctic Ocean mixed layer
We update the Arctic Ocean partitioning coefficient to log10(Kd)=4.5, following Fisher et al. (2012, 2013). This requires making Kd_part a variable rather than a parameter. The value is only modified for the Arctic Ocean (>70°N).
Compute ocean chemistry in ice-covered boxes
We now allow ocean chemistry to occur in all ocean grid boxes, irrespective of ice cover, as chemistry should proceed under ice provided there is sufficient light and/or biological activity. If there is partial ice cover, both solar radiation and atmospheric deposition to the ocean are reduced accordingly. This change relies on partial ice cover information and is therefore only accurate for MERRA and GEOS-FP.
Updates to Hg0 emissions from snow
We now use a parameterisation where Hg0 emissions from snow is dependent on solar radiation, with the emission rate consistent with the mid-range of values from Durnford & Dastoor (2011). We also split the SNOW_HG reservoir into separate land and snow components for further tracking.
Updates to polar BrO chemistry
We have updated to polar BrO scheme so that BrO concentrations are now variable, based on solar radiation and temperature and fit to observations from Pöhler et al. (2010). [BrO] is a simple linear function of T, with a requirement for broken sea ice (approximating leads) and sufficient incoming solar radiation. We assume 5 ppb O3, also based on Pöhler et al. (2010) in the steady state calculation of [Br].
Include snowpack Hg source
We now include a source to the ocean from Hg stored in snowpacks, which is delivered in a single ionic pulse at the start of snowmelt (see Durnford & Dastoor, 2011). This requires tracking the non-reducible Hg in snow (previously only the reducible component was tracked). There are now four snow reservoirs (land & ocean, reducible and non-reducible), all stored in the ocean restart file. Over land, the snow Hg reservoirs are also emptied at the start of snowmelt, but we have not yet implemented addition of this Hg to the soil reservoir.
Include source from Arctic rivers & coastal erosion
As described in detail in Fisher et al. (2012), we include a source of Hg to the Arctic Ocean representing the sum of rivers and coastal erosion. The total flux is on average 95 Mg/yr, with assumed concentrations in May-June freshet that are 3x higher than later in the year. Inputs are the product of concentrations and monthly flow rates (from Arctic RIMS observations), with no flow in November-April. These are scaled interannually (Fisher et al., 2013) using a precomputed monthly scale factor for each month and each year in 1979-2009. Years after 2009 use the mean value. This source can be turned off in input.geos.
Tie photo-reducible HgII(aq) to UV-B radiation
We now tie the pool of HgII that is subject to photo-reduction (previously set to 40%) to available UV-B radiation, as described in Fisher et al. (2013). We scale to present day (2006-2010 mean), and so the scaling factor (a ratio from run year to present day) can be reduced to a ratio of total O3 columns (with exponential dependence from Madronich, 2007). For O3 columns, we use TOMS satellite data. Missing data are replaced with the climatological mean for the same box and month. The default value when data are unavailable is 40% for consistency with the standard simulation. This option can be turned off in input.geos.

Several of these updates rely on met fields that are only available in MERRA and GEOS-FP (e.g. sea ice fraction, downward incoming radiation, etc.). For this reason, we do not recommend running with GEOS-5 or earlier versions for Arctic/Antarctic focused studies.

References

  1. Arrigo, K. R., and G. L. van Dijken (2011), Secular trends in Arctic Ocean net primary production, J. Geophys. Res., 116, C09011, doi:10.1029/ 2011JC007151.
  2. Durnford, D., A. Dastoor, D. Figueras-Nieto, and A. Ryjkov (2010), Long range transport of mercury to the Arctic and across Canada, Atmos. Chem. Phys., 10, 6063–6086, doi:10.5194/acp-10-6063-2010.
  3. Fisher, J. A., D. J. Jacob, A. L. Soerensen, H. A. Amos, A. Steffen, and E. M. Sunderland (2012), Riverine source of Arctic Ocean mercury in- ferred from atmospheric observations, Nat. Geosci., 5, 499–504, doi:10.1038/NGEO1478.
  4. Fisher, J. A., D. J. Jacob, A. L. Soerensen, H. M. Amos, E. S. Corbitt, D. G. Streets, Q. Wang, R. M. Yantosca, and E. M. Sunderland (2013), Factors driving mercury variability in the Arctic atmosphere and ocean over the past 30 years, Global Biogeochem. Cycles, 27, doi:10.1002/2013GB004689.
  5. Jin, M., C. Deal, S. H. Lee, S. Elliot, E. Hunke, M. Maltrud, and N. Jeffery (2011), Investigation of Arctic sea ice and ocean primary production for the period 1992–2007 using a 3-D global ice–ocean ecosystem model, Deep-Sea Res. Pt. II, 81-84, 28-35, doi: 10.1016/j.dsr2.2011.06.003.
  6. Poehler, D., L. Vogel, U. Friess, and U. Platt (2010), Observation of halogen species in the Amundsen Gulf, Arctic, by active long-path differential optical absorption spectroscopy, Proc. Natl. Acad. Sci. U.S.A., 107(15), 6582–6587, doi:10.1073/pnas.0912231107.
  7. Toole, J. M., M. L. Timmermans, D. K. Perovich, R. A. Krishfield, A. Proshutinsky, and J. Richter-Menge (2010), Influences of the ocean surface mixed layer and thermohaline stratification on Arctic Sea ice in the central Canada Basin, J. Geophys. Res., 115, C10018, doi:10.1029/2009JC005660.

Bug Fixes to v11-01 Hg Updates

Incorrect Arctic Hg Riverflow

This update corrects a problem introduced in v11-01c and will be included in the 1-month benchmark simulation v11-01e. Additional benchmarking of the Hg simulation is in progress.

Jenny Fisher writes:

It looks like you have removed entirely the subroutine GET_MLD_FOR_NEXT_MONTH. However there was a bit of that routine that seems unaccounted for, when dFLOW is set for each new month. The way the older version of the code was structured, FLOWNOW was set from the RIVERFLOW array only on the first call to OCEAN_MERCURY_READ (i.e. if it was a 1-year run, this would be set only on Jan 1). dFLOW was also set then, and re-set every month within GET_MLD_FOR_NEXT_MONTH. At each timestep, the new FLOWNOW was set based on the prior FLOWNOW and the value of dFLOW.
So that means that in the new code, a simulation starting on Jan 1 will set the original flow to the January amount (which is small), and then will increment it throughout the run using Dec Flow - Jan Flow, which is actually negative, leading to declining river flow throughout the year starting from very small values anyhow.

We traced this problem to a merge issue where the monthly dFLOW update was applied to GET_MLD_FOR_NEXT_MONTH correctly but a separate update removed all calls to GET_MLD_FOR_NEXT_MONTH with the transition to netcdf MLD files. This issue is resolved by moving the dFLOW update to within the ITS_MIDMONTH() IF statement in OCEAN_MERCURY_FLUX and including definitions for NEXTMONTH and DAYS_IN_MONTH in that routine. The additional line is as follows:

dFLOW = ( RIVERFLOW(NEXTMONTH) - RIVERFLOW(THISMONTH) ) /  
    &        ( 3.6d3 * 24d0 * DAYS_IN_MONTH )

--Lizzie Lundgren (talk) 22:59, 23 November 2015 (UTC)

Unresolved issues

GEOS-5 Hg simulations inconsistently failing unit tests

There are inconsistent differences in the diagnostics and ocean restart files when running unit tests on GEOS-5 4x5 and 2x2.5 mercury simulations in v11-01c. When running a test of ten GEOS-5 4x5 Hg unit tests, the trac_avg file failed with differences seven times and the ocean restart file failed with differences eight times. We have isolated the issue to a single call to depo_mercury_mod.F routine ADD_HG2_SNOWPACK that occurs in convection_mod.F routine NFCLDMX. Commenting out the call and conducting ten GEOS-5 4x5 Hg unit tests results in all tests passing. The issue appears to be an optimization problem but is currently unresolved.

--Lizzie Lundgren (talk) 19:05, 9 September 2015 (UTC)

Code updates for GEOS-Chem v10-01

In this section, we list all of the updates to the Hg simulation that were applied in GEOS-Chem v10-01.

Minor fixes in several routines

Bob Yantosca wrote:

I’ve been looking at the Hg simulation in GC v10-01. I caught a couple of minor things that should be resolved.
(1) At present, if you run the Hg code with LDYNOCEAN = F, then you are not archiving wet-deposited Hg2 and HgP into the proper arrays. In GeosCore/convection_mod.F and GeosCore/wetscav_mod.F we had this type of IF test:
     ! Is this a mercury simulation with dynamic online ocean?
     IS_Hg = ( ITS_A_MERCURY_SIM .and. LDYNOCEAN )

And then this is used to determine if you add wet-deposited Hg2 or HgP to the various arrays in depo_mercury_mod.F:
        IF ( IS_Hg ) THEN
 
           ! Loop over soluble tracers and/or aerosol tracers
           DO NN = 1, NSOL
              N = IDWETD(NN)
  
              ! Check if it is a gaseous Hg2 tag
              IF ( IS_Hg2( N ) ) THEN
 
                 CALL ADD_Hg2_WD      ( I, J, N, DSTT(NN,1,I,J) )
                 CALL ADD_Hg2_SNOWPACK( I, J, N, DSTT(NN,1,I,J),
    &                                   State_Met )
 
              ! Check if it is a HgP tag
              ELSE IF ( IS_HgP( N ) ) THEN
                   
                 CALL ADD_HgP_WD      ( I, J, N, DSTT(NN,1,I,J) )
                 CALL ADD_Hg2_SNOWPACK( I, J, N, DSTT(NN,1,I,J),
    &                                   State_Met )
                 
              ENDIF

           ENDDO
           
        ENDIF

But if LDYNOCEAN =F then this IF block never gets done. This means that if you compare the SNOW_HG variable between 2 runs (one with LDYNOCEAN=T and one with LDYNOCEAN=F), then you will get dramatically different values of SNOW_HG between the 2 runs. The run with LDYNOCEAN=F is not accounting for Hg2 that is being deposited over snow or ice.
I think the deposition of Hg should probably be independent of whether or not you are using the dynamic ocean. So I would recommend changing the IS_Hg test to:
     ! Is this a mercury simulation with dynamic online ocean?
     IS_Hg = ITS_A_MERCURY_SIM

I think there was once a historical reason why LDYNOCEAN was required to be =T (maybe to ensure that unallocated arrays wouldn’t get used) a long time ago. But I now think that the code has been reorganized so that this LDYNOCEAN=T condition is no longer necessary.


(2) In routine SNOWPACK_MERCURY_FLUX (in GeosCore/land_mercury_mod.F), the K_EMIT variable is declared outside of a parallel loop, but it is also declared again inside the parallel loop. So I commented out the declaration outside the loop, which is superfluous.


(3) In routine SRCHg0 (in GeosCore/mercury_mod.F), I noticed that we were zeroing out whole arrays on each (I,J) iteration in a loop. I rewrote the code below so that you only zero out (I,J) or (I,J,:) array slices, which is more efficient.
         ! Loop over grid boxes
   !$OMP PARALLEL DO
   !$OMP+DEFAULT( SHARED )
   !$OMP+PRIVATE( I, J, L, N, T_Hg_An, T_Hg, F_OF_PBL, E_Hg, NN)
         DO J = 1, JJPAR
         DO I = 1, IIPAR
 
            IF ( LPREINDHG ) THEN  !eds

               ! Anthropogenic emissions
               T_Hg_An = 0e+0_fp
    
               ! No biomass burning emissions
   !-----------------------------------------------------------------------------
   ! Prior to 6/9/15:
   ! Because we are in a do loop, we should only zero out (I,J) elements
   ! instead of the whole array. (bmy, 6/9/15)
   !            !EHg0_bb = 0e+0_fp
   !            !EHg0_bb = 0e+0_fp
   !-----------------------------------------------------------------------------
               EHg0_bb(I,J) = 0e+0_fp
               EHg0_bb(I,J) = 0e+0_fp
 
            ELSE

               ! Compute total anthropogenic Hg(0) emissions
               T_Hg_An = EHg0_an(I,J)

               IF ( LAnthroHgOnly ) THEN
                  ! No other emissions
   !-----------------------------------------------------------------------------
   ! Prior to 6/9/15:
   ! Because we are in a do loop, we should only zero out (I,J) elements
   ! instead of the whole array. (bmy, 6/9/15)
   !               EHg0_bb = 0e+0_fp
   !               EHg0_oc = 0e+0_fp
   !!- eds 8/31/10 ---------------------------------------------------------------
   !!               EHg0_nt = 0e+0_fp
   !               EHg0_geo = 0e+0_fp
   !!-----------------------------------------------------------------------------
   !               EHg0_snow = 0e+0_fp
   !               IF ( LGTMM ) THEN
   !                  EHg0_gtm = 0e+0_fp
   !               ELSE
   !                  EHg0_ln = 0e+0_fp
   !                  EHg0_vg = 0e+0_fp
   !                  EHg0_so = 0e+0_fp
   !-----------------------------------------------------------------------------
                  EHg0_bb(I,J)      = 0e+0_fp
                  EHg0_oc(I,J,:)    = 0e+0_fp
                  EHg0_snow(I,J,:)  = 0e+0_fp
                  IF ( LGTMM ) THEN
                     EHg0_gtm(I,J) = 0e+0_fp
                  ELSE
                     EHg0_ln(I,J,:) = 0e+0_fp
                     EHg0_vg(I,J)   = 0e+0_fp
                     EHg0_so(I,J)   = 0e+0_fp
                  ENDIF
               ENDIF
            
            ENDIF

--Bob Y. (talk) 20:11, 11 June 2015 (UTC)

Bugs in MERRA wet deposition

Carey Friedman originally reported bugs in the calculation of WETLOSS in DO_MERRA_CONVECTION and DO_WASHOUT_ONLY that caused mass of scavenged tracer passed to depo_mercury_mod.F to differ from the mass that is archived in the wet deposition diagnostics (ND38 and ND39). Carey's fixes were implemented in v10-01g. Viral Shah examined these bugs in more detail and proposed several additional bug fixes. Viral's fixes will be included in the GEOS-Chem v10-01 public release. For more information, please see this post on our Wet deposition wiki page.

--Melissa Sulprizio (talk) 15:58, 21 May 2015 (UTC)

Remove array temporaries in routine READ_HG2_PARTITIONING

These updates were validated in the 1-month benchmark simulation v10-01c and approved on 29 May 2014.

The GEOS-Chem Unit Tester revealed the presence of array temporaries in routine READ_HG2_PARTITIONING, located in module GeosCore/ocean_mercury_mod.F. We made the following modifications in order to eliminate these array temporaries.

(1) Declare array ARRAYtemp in the local variables section:

      ! Arrays to hold aerosol concentrations  
      REAL*4               :: ARRAYso4(  IGLOB, JGLOB, LGLOB )  ! so4
      ... etc ...
      REAL*4               :: ARRAYtemp( IGLOB, JGLOB, LGLOB )  ! temporary

(2) Sum arrays into ARRAYtemp before passing to routine TRANSFER_3D_TROP, as follows:

      ! convert REAL*4 to REAL*8 
!-----------------------------------------------------------------------------
! Prior to 4/15/14:
! Remove an array temporary (bmy, 4/15/14)
!      CALL TRANSFER_3D_TROP( ARRAYbcpi + ARRAYbcpo , BC_CONC ) 
!-----------------------------------------------------------------------------
      ARRAYtemp = ARRAYbcpi + ARRAYbcpo
      CALL TRANSFER_3D_TROP( ARRAYtemp, BC_CONC ) 

      ... etc ...

      ! convert REAL*4 to REAL*8 
!-----------------------------------------------------------------------------
! Prior to 4/15/14:
! Remove an array temporary (bmy, 4/15/14)
!      CALL TRANSFER_3D_TROP( ARRAYocpi + ARRAYocpo , OC_CONC ) 
!-----------------------------------------------------------------------------
      ARRAYtemp = ARRAYocpi + ARRAYocpo
      CALL TRANSFER_3D_TROP( ARRAYtemp, OC_CONC ) 

--Bob Y. 17:08, 30 May 2014 (EDT)

Code updates for GEOS-Chem v9-02

In this section, we list all of the updates to the Hg simulation that were made in GEOS-Chem v9-02.

Nested-grid Hg simulation over North America

This update was implemented in 1-month benchmark simulation v9-02c and contains the following items:

Yanxu Zhang wrote:

1. Nested Hg simulation over North America
The GEOS-Chem simulation now can be run in nested-grid mode within North American domain, with lateral boundary conditions provided by a 4x5 global run. The nested model can be run with GEOS-5 meteorological data.
2. NEI 2005 and NPRI 2005 emission inventory
The emisison inventories for US and Canada are updated according to the NEI2005 and NPRI2005 emission inventories. A triger LNEI2005 is added to control this. If enabled, the emission inventory will be overrided by the NEI2005 and NPRI2005 emission inventories in US and Canada, respectively.
3. In-plume reduction (CFPP and other sectors)
A triger LInPlume is added to controlled the in-plume reduction. If enabled, the coal fired power plants emission speciation is modified as 86.5:9.9:3.6. In the US and Canada, the location and emission rate from coal fired power plants are available in the NEi2005 and NPRI2005 emission inventories, respectively.
4. Updated reduction according to cloud fraction
Adjust the liquid water content (LWC) by dividing it by cloud cover:
           LWC     = SAFE_DIV( LWC, FC, 0d0 )
After calculating the fraction of HgII in aqueous phase (FA), the FA is multiplied by cloud cover:
        IF ( LGEOSLWC ) FA =  FA * FC
This implementation was firstly introduced by lzh, jaf and bmy.
The K_RED_JNO2 is also tuned:
     REAL*8, PARAMETER    :: K_RED_JNO2 = 6.4d-3
5. Reading data in different spatial resolutions
The code is modified to handle files in different resolutions, including global_o3_mod.F, mercury_mod.F and ocean_mercury_mod.F.
6. Sensitivity run to turn off North American anthropogenic emissions
Modify the definition of North American anthropogenic emissions:
!            IF ( GET_XMID(I) > -125 .AND. GET_XMID(I) < -65 .AND.
!     &           GET_YMID(J) >  25  .AND. GET_YMID(J) < 50 ) THEN
            IF ( GET_XMID(I) > -140 .AND. GET_XMID(I) < -40 .AND.
     &           GET_YMID(J) >  10  .AND. GET_YMID(J) < 70 ) THEN

--Melissa Payer 11:27, 13 December 2011 (EST)

Streets future Hg emissions

This update was tested in the 1-month benchmark simulation v9-02c and approved on 29 Nov 2012.

Bess Corbitt has implemented Streets future Hg emissions into the Hg simulation based on the 1x1 gridded GEIA 2005 anthropogenic emissions inventory. Within major world regions (e.g. United States, Eastern Europe, etc.) the spatial pattern of the GEIA inventory is maintained, but a scaling factor is applied so that regional total emissions equal that of Streets et al. 2009.

Emissions are available for the present-day (2006) or future (2050) scenarios. Future emissions are based on the four IPCC SRES scenarios: A1B, A2, B1, or B2. Additional options have been added to the Mercury Menu in input.geos to allow the user to select an emissions scenario.

For more information, see Corbitt et al. 2011.

--Melissa Payer 16:33, 27 November 2012 (EST)

Updated Hg(0) oxidation kinetics

This update was tested in the 1-month benchmark simulation v9-02c and approved on 29 Nov 2012.

Hg(0) + Br rate constants have been updated to use the Goodsite et al. 2012 corrected values. The new rates are denoted as GoodsiteUpdate in subroutine GET_HGBR_RATE (mercury_mod.F).

--Melissa Payer 16:33, 27 November 2012 (EST)

Capability to use GEOS-Chem Br/BrO fields in Hg simulation

This update was tested in the 1-month benchmark simulation v9-02c and approved on 29 Nov 2012.

The mercury simulation has been updated to use Br and BrO mixing ratios from GEOS-Chem using the tropospheric bromine chemistry mechanism described in Parrella et al. 2012. Users can choose between using the GEOS-Chem tropospheric bromine fields or the older TOMCAT fields by setting the LGCBROMINE switch in subroutine INIT_MERCURY (mercury_mod.F).

--Melissa Payer 16:33, 27 November 2012 (EST)

Bug in original BrOx.GC.2x25 file

A corrected BrOx.GC.geos5.2x25 file was made available on 21 Oct 2013. Users of GEOS-Chem v9-02 should download this version of the file.

Amanda Giang wrote:

I just wanted to give you an update on what Shaojie and I have found poking around v9-02g. All the 4x5 runs look totally normal, and we think the difference for 2x25 might be that the values in Br.Ox.GC.geos5.2x25 are in different units?
It looks like 2x25 is in v/v while 4x5 is in ppb, so there's a 9 order of magnitude difference. Right now we've just added a scaling factor of 1E9 in our code where Br is read.

Melissa Sulprizio wrote:

We have finally fixed the BrOx.GC.geos5.2x25 file in GEOS_2x2.5/mercury_201007/ so that the units are consistent with the 4x5 and nested NA files. I believe the error was introduced when regridding the 4x5 file to 2x2.5. The GAMAP routine regridh_restart.pro converts units to v/v for regridding, but the units were never converted back to ppbv. With the new file, you should no longer need the 1E9 scaling factor in your code.

The corrected file can be obtained from:

  ftp://ftp.as.harvard.edu/gcgrid/data/GEOS_2x2.5/mercury_201007/BrOx.GC.geos5.2x25

--Melissa Sulprizio (talk) 14:21, 24 August 2015 (UTC)

Bug fixes for nested Hg simulation

This update was tested in the 1-month benchmark simulation v9-02f and approved on 07 Feb 2013.

Yanxu Zhang wrote:

Several bugs in the code:
1. input_mod.F: change the number of diagnostics.
     !--------------------------
     ! ND03: Hg diagnostics
     !--------------------------
     CALL SPLIT_ONE_LINE( SUBSTRS, N, -1, 'read_diagnostic_menu:5' )
     READ( SUBSTRS(1), * ) ND03
     IF ( .not. ITS_A_MERCURY_SIM() ) ND03 = 0
     !CALL SET_TINDEX( am_I_Root, 03, ND03, SUBSTRS(2:N), N-1, PD03_PL ) !eds 9/9/10
     CALL SET_TINDEX( am_I_Root, 03, ND03, SUBSTRS(2:N), N-1, PD03 ) !yzh 12/15/12
2. land_mercury_mod.F: value for SOIL_EMIS_FAC in 0.5x0.666 nested-grid, now we can use the same value for 4x5 grid. Further tuning may slightly change the value.
#elif defined(GRID05x0666)
     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     ! lhu, 1/5/2012, add pre-defined SOIL_EMIS_FAC for 05x0667 simulation
     ! This is a non-physical value and would need to be changed for an
     ! actual mercury simulation
     REAL*8, PARAMETER :: SOIL_EMIS_FAC = 2.4D-2*0.71d0  !yzh
     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3. mercury_mod.F: GC Br filed for nested-grid. I have interpolate the Br filed from GC Br simulation for the nested-grid run. So now the nested-grid model and global model are consistent. We can choose use either GC or TOMCAT Br filed for the nest and global models. However, I suggest always choose the same Br field for the nested and global models.
!#if defined( GRID05x0666 ) && defined( NESTED_NA )
     !LGCBROMINE = .FALSE.
!#else
    LGCBROMINE = .TRUE.
!#endif
4. ocean_mercury_mod.F: unit transfer for aerosol concentrations in nested-grid model:
#if defined( GRID4x5 )
        BULK_CONC(I,J,L) = 1d9 * ( BULK_CONC(I,J,L) * AIRDEN(L,I,J)  )
#elif defined( GRID2x25 )
        BULK_CONC(I,J,L) = ( BULK_CONC(I,J,L) * AIRDEN(L,I,J)  )
#elif defined( GRID05x0666 ) && defined( NESTED_NA )
        BULK_CONC(I,J,L) = 1d9 * ( BULK_CONC(I,J,L) * AIRDEN(L,I,J)  )  !yzh, 12/15/2012
#endif

--Melissa Payer 09:29, 1 February 2013 (EST)

Bug in tagged Hg emissions in v9-02

This issue was resolved when the HEMCO emissions component was implemented into GEOS-Chem v10-01.

— Melissa Sulprizio, 11 June 2015

Carey Friedman wrote:

In the mercury_mod.F file, in the MERCURY_READYR routine, for tagged tracer emissions of Hg2 and HgP, I think the routine from Hg0 was copied and revised but the emissions array variable in DO_REGRID_A2A wasn't updated. So for both Hg2 and HgP, the emissions are regridded into, for example, an EHg0_usa array, overwriting whatever was there before. It looks like this is the case for all source regions for both Hg2 and HgP (at least in v902).

To fix this bug, change the OUTGRID argument in all calls to DO_REGRID_A2A for the Hg2 and HgP tagged tracers. For example, change the bold lines below from:

              !===========================
              ! Anthro United States Hg2
              !===========================
              FILENAME = TRIM( Input_Opt%DATA_DIR_1x1 ) // 
    &              'mercury_201205/' //
    &                    'GEIA_Streets_'      // TRIM( SCENARIO )  //
    &                    '_Hg2_USA.geos.1x1.YYYY'
           
              ! Add year to the filename
              CALL EXPAND_DATE( FILENAME, NYMD, 000000 )
           
              ! Echo info
              WRITE( 6, 119 ) TRIM( FILENAME )
119           FORMAT( '     - MERCURY_READYR: Reading ', a )
           
              ! Read data in [kg/yr]
              CALL READ_BPCH2( FILENAME, 'HG-SRCE', 6,
    &                          XTAU,      I1x1,     J1x1-1,
    &                          1,         ARRAY1,   QUIET=.TRUE. )
           
              ! Cast to REAL*8 before regridding
              GEN_1x1(:,:) = ARRAY1(:,:,1)

              ! Regrid from GENERIC 1x1 to the current grid
              INGRID  => GEN_1x1(:,:)
              CALL DO_REGRID_A2A( LLFILENAME, I1x1,     J1x1-1,
    &                             INGRID,     EHg0_usa, IS_MASS=1,
    &                             netCDF=.TRUE.                   )
           
              ! Convert from [kg/yr] to [kg/s]
              EHg2_usa = EHg2_usa / SEC_PER_YR

              ! Free pointer
              NULLIFY( INGRID )

to:

              CALL DO_REGRID_A2A( LLFILENAME, I1x1,     J1x1-1,
    &                             INGRID,     EHg2_usa, IS_MASS=1,
    &                             netCDF=.TRUE.                   )

--Melissa Sulprizio 16:40, 16 September 2014 (EDT)

Code updates for GEOS-Chem v9-01-03

In this section, we list the updates to the Hg simulation that were applied in GEOS-Chem v9-01-03.

GAMAP can't read v9-01-03 output for Hg

This update was tested in the 1-month benchmark simulation v9-02k and approved on 07 Jun 2013.

The ctm.bpch and restart files created by the GEOS-Chem v9-01-03 mercury simulation cannot be read by GAMAP, due to a bug in gamap_mod.F causing missing lines in tracerinfo.dat. In addition, the ctm.bpch file does not contain dry deposition velocities for PBM.

Although this bug will be fixed in v9-02, users of v9-01-03 should apply this patch with git: Media:Patch_GC-Hg.v9-01-03.txt‎. The patch should apply after the commit "Bug fix: Add inquireMod.o to dependency listing for bpch2_mod.o" on 2012-09-14 12:52:51. For instructions on applying patches, see this wiki page.

The patch also makes several other changes to the model:

1. The 3 Hg tracers in restart and ctm.bpch files should be interpreted as Hg(0), RGM and PBM, where RGM and PBM are both reactive and semi-volatile (as described by Amos et al., 2012). The ND03 PL-HG2-$ diagnostics for RGM and PBM are thus redundant with the ND45 IJ-AVG-$ diagnostic. In new code, I suggest replacing the legacy terms Hg2 and HgP with Hg2g and Hg2p (i.e. gaseous and particle-bound Hg(II)).
2. Mercury chemistry is solved with a 4th-order Runge-Kutta method. This simplifies and shortens (by 800 lines!) the source code without loss of speed or accuracy. Maximum differences with the prior code are of order 0.001% for Hg(II) and 100 times smaller for Hg(0).
3. PBM is not taken up by sea-salt aerosol. The parameterization for Hg(II) uptake (Holmes et al., 2010) is appropriate only for gaseous Hg(II).

--Chris Holmes 16:14, 9 April 2013 (EDT)

Hg(II) gas-particle partitioning

This update was tested in the 1-month benchmark simulation v9-01-03h and approved on 09 Mar 2012.

This update will be included in v9-01-03 and contains the following items:

1. Hg(II) gas-particle partitioning from Amos et al. (2012)
Hg(II) now partitions between the gas and particle phases as a function of the local air temperature and aerosol burden. Hg(II) phase partitioning affects both wet and dry deposition. This will be the new default for Hg(II) gas-particle partitioning, but partitioning Hg(II) 50/50 to the gas and particle phases is still an option (see mercury_mod.F).
2. Primary anthropogenic Hg(p) is emitted as Hg(II)
Due to the lack of experimental evidence that primary anthropogenic Hg(p) is chemically inert, we no longer treat this species as refractory. Hg(p) is now emitted as Hg(II) and is thus part of the Hg(II) pool available for gas-particle partitioning. More details on this can be found in Amos et al. (2012).

-- Helen Amos 18:11 25 January 2012 (EST)

Bug fix for reading Hg emissions

This update has been rendered obsolete by the inclusion of the HEMCO emissions component into GEOS-Chem v10-01 and later versions. HEMCO now reads emissions from netCDF files.

— Bob Yantosca, 21 Aug 2015

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

Jenny Fisher discovered that anthropogenic mercury emission files on the generic 1°x1° grid (360x180) were being read as GEOS 1°x1° (360x181) files.

Jenny Fisher wrote:

If that's the case, then we were reading generic files but assuming they were GEOS files. Also reading real*4 but not recasting into real*8. I've fixed both problems (code based on how we read emissions in full chem). The differences are minimal and mainly over source regions.

This issue will be fixed in GEOS-Chem v9-01-03.

--Melissa Payer 16:55, 17 February 2012 (EST)

Code updates to GEOS-Chem v9-01-02

In this section, we list the updates to the Hg simulation that were applied in GEOS-Chem v9-01-02.

In-plume reduction

Change the speciation of fossil fuel anthro emissions (46%) of total emissions from 50:40:10 to 86.5:9.9:3.6. This is now standard in v9-01-02. The speciation comes from Yanxu Zhang at UW and is more consistent with observations (Edgerton et al. 2006). Speciation factors were calculated by Helen Amos at Harvard.

--Bob Y. 14:49, 29 November 2011 (EST)

Yanxu Zhang, Helen Amos, and Bess Corbitt have prepared a description of in-plume reduction and its implementation in the GEOS-Chem Hg simulation. Download the IPR document here. (PDF)

--Helen Amos. 17:35, 14 May 2013 (EST)

Bug fix for gross Hg0 air-sea exchange diagnostics

The gross fluxes of Hg0 across the air-sea interphase (diagnostics 34016 and 34017) are incorrectly described in the model (including v9-01-02). The equation for the evasion flux (Flux = Kw (Hg0aq – Hg0air / H) was split into an upward and a downward component (Fup = Kw * Hg0aq and Fdown = Kw * Hg0air/H). This way of splitting the equation has no physical meaning. With this fix the flux is only considered to be downwards (from air to sea) if the sea-water is undersaturated compared to the air (Flux is negative). This does not happen often (downwards flux can be expected to be around 2% of the upwards evasion flux) as sea-water is mostly supersaturated with Hg0. This will lbe changed in the next version of the model.

In ocean_mercury_mod.f

   Change:
   FUP(I,J,NN) = (Kw * CHg0aq)
   FDOWN(I,J,NN) = (Kw * CHg0 / H)
   With:
   ! FUP(I,J,NN) = (Kw * CHg0aq)
   ! FDOWN(I,J,NN) = (Kw * CHg0 / H)

and

   Change:
   FUP(I,J,NN) = FUP(I,J,NN) * TO_KGM2S * A_M2 * FRAC_O
   FDOWN(I,J,NN) = FDOWN(I,J,NN) * TO_KGM2S * A_M2 * FRAC_O
   With:
   ! FUP(I,J,NN) = FUP(I,J,NN) * TO_KGM2S * A_M2 * FRAC_O
   ! FDOWN(I,J,NN) = FDOWN(I,J,NN) * TO_KGM2S * A_M2 * FRAC_O

and

   Change:
   FUP(I,J,NN) = FLUX(I,J,NN)-FDOWN(I,J,NN)
   With:
   ! FUP(I,J,NN) = FLUX(I,J,NN)-FDOWN(I,J,NN)

and

   Change:
   AD03(I,J,16) = AD03(I,J,16) + FUP(I,J,ID_Hg_tot) * DTSRCE
   AD03(I,J,17) = AD03(I,J,17) + FDOWN(I,J,ID_Hg_tot) * DTSRCE
   With:
   ! AD03(I,J,16) = AD03(I,J,16) + FUP(I,J,ID_Hg_tot) * DTSRCE
   ! AD03(I,J,17) = AD03(I,J,17) + FDOWN(I,J,ID_Hg_tot) * DTSRCE
   IF (FLUX(I,J,ID_Hg_tot) > 0d0) THEN
   AD03(I,J,16) = AD03(I,J,16) 
   + FLUX(I,J,ID_Hg_tot) * DTSRCE
   ELSE IF (FLUX(I,J,ID_Hg_tot) < 0d0) THEN
   AD03(I,J,17) = AD03(I,J,17) 
   + ( abs (FLUX(I,J,ID_Hg_tot) * DTSRCE ) )
   ENDIF

- Anne Laerke Soerensen 02:00, 9 Sept 2011 (EDT)

De-hardwire file path BR_DIR in global_br_mod.f

This update has been rendered obsolete by the inclusion of the HEMCO emissions component into GEOS-Chem v10-01 and later versions. The file global_br_mod.F was removed from GEOS-Chem v10-01.

— Bob Yantosca, 21 Aug 2015

This update was tested in the 1-month benchmark simulation v9-01-02e and approved on 01 Aug 2011.

A typo was discovered in the source code file global_br_mod.f.

Chris Holmes wrote:

The variable BR_DIR was previously hard-coded with an absolute file path that would only work on the Harvard AS servers. With [my submitted fix], the directory with Br data is constructed from the DATA_DIR variable (in directory_mod.f), analogous to the way most other directories are found. This should make the code run more easily on systems outside Harvard.

--Bob Y. 11:35, 25 July 2011 (EDT)

Negative aquatic mercury concentrations

This update was tested in the 1-month benchmark simulation v9-01-02e and approved on 01 Aug 2011.

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)

Division by zero error

This update was tested in the 1-month benchmark simulation v9-01-02p and approved on 29 Sep 2011.

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.

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

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

  And add: 
  !Refernces to F90 modules
  USE ERROR_MOD, ONLY: SAFE_DIV 

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. 11:35, 25 July 2011 (EDT)

Bug fixes for ND03 mercury diagnostics

This update was tested in the 1-month benchmark simulation v9-01-02p and approved on 29 Sep 2011.

Chris Holmes found and fixed several issues with the ND03 diagnostic (which only affects the offline Hg simulation).

Chris Holmes wrote:

I found a bug in ND03 diagnostics in GEOS-Chem v9-01-01 (last updated 2011-5-27). The PL-HG2-$ diagnostics were not in the ctm.bpch file and the tracer names for these diagnostics were not in tracerinfo.dat. The reason is because there are more ND03 diagnostics than the number given in PD03. This has been a confusing and muddled part of the code for a long time. I fixed the bug with the attached patch and also simplified diag03_mod.f to hopefully make it easier to maintain as diagnostics are added or changed in the future.
I confirmed that my changes to diag03_mod.f do not alter the diagnostic outputs, within expected REAL*4 precision.
At the same time I was fixing the diagnostics, I found and corrected (with SAFE_DIV) a floating point overflow error in mercury_mod.f and removed legacy comments in mercury_mod.f that were left over from my personal debugging. I also corrected a diagnostic tracer name in gamap_mod.f, which was introduced when Anne Soerensen's ocean was added.

We also have restored printing of the soil Hg emissions to the standard output (aka the GEOS-Chem log file). This error was probably a relic of someone debugging.

--Bob Y. 11:35, 25 July 2011 (EDT)

VEGEMIS/GCAP bug fix

This update was tested in the 1-month benchmark simulation v9-01-02e and approved on 01 Aug 2011.

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 09:43, 13 April 2011 (EDT)
--Bob Y. 11:35, 25 July 2011 (EDT)

Code updates for GEOS-Chem v9-01-01

The following issues were fixed in the re-release of GEOS-Chem v9-01-01 (07 Jun 2011).

Omitted code in Hg simulation

We created a patch to fix this issue. This update was standardized in the re-release of v9-01-01.

  • Designated as: v9-01-01-Patch-Hg
  • Applied: 2011-04-13
  • Authors: Chris Holmes, Jenny Fisher
  • Signed off by: Bob Yantosca

Jenny Fisher wrote:

After some discussion between Chris Holmes and I, we realized that some of his updates to the Hg code (i.e. the version published in his paper) didn't get properly implemented in v9-01-01. I haven't looked *extensively* through his code, but I have done a quick look through the obvious mercury routines and found 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):
          BBRatio_Hg_CO=1.05D-7

       However, we should use this value from Holmes et al 2010:
          BBRatio_Hg_CO=1D-7

   (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

The patch, which is present in the re-release of v9-01-01 (07 Jun 2011) contains 3 individual 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

--Jenny Fisher 09:43, 13 April 2011 (EDT)
--Bob Y. 11:35, 25 July 2011 (EDT)

Code updates for GEOS-Chem v8-03-02

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:
     !REAL*8, PARAMETER  :: BRO_POLAR=10D0
     REAL*8, PARAMETER  :: BRO_POLAR=5D0
  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
      F_RAINOUT = F_PRIME
      ! Washout occurs where there is no rainout
      F_WASHOUT = MAX( FTOP - F_RAINOUT, 0d0 )
     ELSE
      F_RAINOUT = 0d0
      F_WASHOUT = 0d0
     ENDIF
    • 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
     !   F_RAINOUT = MAX( FTOP, F_PRIME )
     !  ENDIF
     !  F_WASHOUT = MAX( FTOP - F_RAINOUT, 0d0 )
     !ENDIF


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.

Benchmarking

A script is now available to benchmark mercury simulations against existing observations. The script was created originally by Bess Corbitt, with contributions from Chris Holmes, Helen Amos, Jenny Fisher, Anne Soerensen, Noelle Selin, and others. The benchmark code is publicly available though you need a (free) account on github. If you'd like to make changes to the benchmark, email your username to Noelle Selin (selin at MIT dot edu) who will add you as a "collaborator".

[https://github.com/noelleselin/HgBenchmark] is the address. You can easily see any changes through this web system, but the access is similar to the geos-chem git server (i.e. you can use git commands through your own computer system same as downloading geos-chem from Harvard.) In this way, we hope to be able to track future versions of the Hg code more easily.

The benchmarking directory available on github includes all necessary IDL scripts, input files, tracerinfo and diaginfo files, sample bpch files that can be used as reference files, and a README. Please check the README for detailed information and instructions for setting up and running the benchmarking scripts.

--Jenny Fisher 9:45, 14 December 2011 (EDT)

Benchmark results for mercury-specific GEOS-Chem updates

Feature Type Submitted by Version Notes
Hg(II) gas-particle partitioning Science Helen Amos (Harvard) v9-01-03h A 1-yr benchmark (2009, 4x5) was performed for v9-01-03h against v9-01-02 by Helen Amos. A complete set of benchmark plots are available on Harvard's ftp server:
ftp ftp.as.harvard.edu
cd gcgrid/geos-chem/Hg_benchmarks/v9-01-03
get Hg_benchmark_v9-01-03h.tar.gz

For details on Hg(II) partitioning, please see Amos et al. (2012, ACP).

Nested grid simulation over North America Science Yanxu Zhang (UW) v9-02c A 1-year benchmark (2009, 4x5) was performed for v9-02c against v9-01-03h by Yanxu Zhang. A complete set of benchmark plots are available at:
ftp ftp.as.harvard.edu
cd gcgrid/geos-chem/Hg_benchmarks/v9-02
get Hg_benchmark_v9-02c.tar.gz

For more information on the nested grid Hg simulation, please see Zhang et al. (2012, ACP).

EPA/NEI05 North American Hg emissions Science Yanxu Zhang (UW) " " " "
Updated Hg(0) oxidation kinetics Science Bess Corbitt (Harvard) " " " "
Capability to use GEOS-Chem Br/BrO fields in Hg simulation Science Bess Corbitt (Harvard) " " " "
Streets future Hg emissions Science Bess Corbitt (Harvard) " " " "
None N/A Chris Holmes (UC Irvine) v9-02g A 1-year benchmark (2009, 4x5) was performed by Chris Holmes for v9-02g against v9-01-03h (and against v9-02c, not discussed). A complete set of benchmark plots are available at:
ftp ftp.as.harvard.edu
cd gcgrid/geos-chem/Hg_benchmarks/v9-02
get Hg_benchmark_v9-02g.tar.gz

The Hg0 chemical lifetime increased from 0.51 to 0.69 yr and the total atm. lifetime increased from 0.69 to 0.81 yr. Major changes in emissions worldwide, overall decreasing Hg(0) emission while increasing Hg(II) emission. Surface TGM increased ~0.1-0.15 ng/m3 over N. America and Europe, but decreased ~0.3ng/m3 over E. Asia. Surface Hg(II) doubled over Europe, E. Asia and ice-covered oceans, but decreased over ice-free oceans. Wet and dry deposition change 50-100% over many regions, with the same sign as Hg(II).

Replace Hg2 and HgP with Hg2g and Hg2p;
Update mercury chemistry to Runge-Kutta method;
Remove PBM uptake by sea salt aerosol
Science Chris Holmes (UC Irvine) v9-02k A 1-year benchmark (2009, 4x5) was performed by Chris Holmes for v9-02k against v9-02g (and against v9-01-03h, v9-01-03-release, and v9-02c, not discussed). A complete set of benchmark plots are available at:
ftp ftp.as.harvard.edu
cd gcgrid/geos-chem/Hg_benchmarks/v9-02
get Hg_benchmark_v9-02k.tar.gz

The difference between v9-02g and v9-02k is negligible, as expected. Sea-salt uptake decreases 50% in continental outflow regions because SSA uptake is applied only to Hg2g, not Hg2p. In response, wet and dry deposition increase in these regions.

--Melissa Payer 12:04, 1 July 2013 (EDT)

Benchmark results for the nested NA grid

Yanxu Zhang has developed a script to benchmark nested-grid mercury simulations over North America. The benchmark code is publicly available at https://github.com/yanxuz/HgBenchmark_nested_NA.

The benchmarking directory available on github includes all necessary IDL scripts, input files, tracerinfo and diaginfo files, sample bpch files that can be used as reference files, and a README. Please check the README for detailed information and instructions for setting up and running the benchmarking scripts.

Feature Type Submitted by Version Notes
Nested grid simulation over North America Science Yanxu Zhang (UW) v9-02c A 1-year benchmark (2009, 4x5) was performed for v9-02c by Yanxu Wang. A complete set of benchmark plots are available at:
ftp ftp.as.harvard.edu
cd gcgrid/geos-chem/Hg_benchmarks/v9-02
get Hg_benchmark_v9-02c.05x0666_NA.tar.gz

For more information on the nested grid Hg simulation, please see Zhang et al. (2012, ACP).

EPA/NEI05 North American Hg emissions Science Yanxu Zhang (UW) " " " "
Updated Hg(0) oxidation kinetics Science Bess Corbitt (Harvard) " " " "
Capability to use GEOS-Chem Br/BrO fields in Hg simulation Science Bess Corbitt (Harvard) " " " "
Streets future Hg emissions Science Bess Corbitt (Harvard) " " " "

--Melissa Payer 12:31, 4 February 2013 (EST)

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.

Diagnostics

Notes

  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

      CATEGORY ILUN TRCNAME   TRC         UNIT      TAU0(DATE)       DIMENSIONS
  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)

GTMM

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.


Helen Amos wrote:

Here are step-by-step instructions for making a new soil distribution if you are not using GTMM. You will need to use the following IDL scripts written by Chris Holmes:

  soilhgdist_uniform.pro
  soilhgdist.pro

Step 1: Use soilhgdist_uniform.pro to create a uniform soil distribution. Save file as 'soilhg.uniform.bpch'.

Step 2: In mercury_mod.f SUBROUTINE MERCURY_READYR, specify that you want to run with 'soilhg.uniform.bpch'.

Step 3: Run three years (e.g. 2004-2006) of pre-industrial simulation with uniform soil distribution. Specify that it's a pre-industrial simulation in the input.geos file.

Step 4: Use soilhgdist.pro to create a new, scaled soil distribution (saved as a bpch file) and to calculate the ratio of deposition/emission.

Step 5: Adjust SOIL_EMIS_FAC in land_mercury_mod.f by multiplying SOIL_EMIS_FAC * (deposition/emission), where deposition/emission is the ratio from Step 4.

Step 6: In mercury_mod.f SUBROUTINE MERCURY_READYR, change input file to new soil distribution created in Step 4.

Step 7: Run three years (e.g. 2004-2006) of pre-industrial simulation. Start this run from where Step 3 left off by renaming the restart.totHg.* and ocean.totHg.* files (i.e. rename restart.totHg.2007010100 to restart.totHg.2004010100).

Step 8: Repeat Steps 4-7 until pre-industrial soil distribution converges. You can check for convergences with Gamap routine CTM_PLOTDIFF.

Step 9: Once the pre-industrial soil distribution has converged to with 5%, run three years (e.g. 2004-2006) of a present day simulation with ONLY direct anthropogenic emissions. Specify that it's a present day simulation by setting 'Is it a pre-industrial sim?' to 'F' in the input.geos file. Specifiy that you only want direct anthropogenic emissions by setting the logical LAnthroHgOnly to 'T' in mercury_mod.f SUBROUTINE INIT_MERCURY.

Step 10: Use soilhgdist.pro to create a present day soil distribution.


--Helen Amos 03:44, 13 Aug 2011 (EST)

Anthropogenic Emissions

The GEIA 2005 emission inventory for anthropogenic Hg (Pacyna et al., 2010) is now available on the ftp server for public use. The bpch files were prepared by Bess Corbitt at Harvard and are available at:

  ftp ftp.as.harvard.edu
  cd gcgrid/geos-chem/data/GEOS_1x1/mercury_201002/

  get GEIA_Hg0.geos.1x1.2005
  get GEIA_Hg2.geos.1x1.2005
  get GEIA_HgP.geos.1x1.2005

Previous options for anthropogenic Hg emissions have included GEIA 2000 (Pacyna et al., 2006) and GCAP (GEIA 2000 scaled to David Streets' 2006 inventory; Streets et al., 2009). The GCAP inventory was also prepared by Bess Corbitt.

Note that the GEIA 2005 emissions DO include artisanal mining and the GEIA 2000 do NOT include artisanal mining.

--Helen Amos 12:06, 06 Oct 2011 (EST)
--Bob Y. 16:53, 24 October 2011 (EDT)

Inputs from rivers

We developed a global inventory of Hg inputs to coastal margins from rivers (Amos et al., 2014). River inputs have been tested in the MITgcm ocean simulation, but have not been tested in GEOS-Chem. If you would like a copy of the Hg river inventory, feel free to contact me at hamos@hsph.harvard.edu.

--Helen Amos 15:20, 02 Jun 2015 (EST)

References

  1. H. M. Amos, D. J. Jacob, D. Kocman, H. M. Horrowitz, Y. Zhang, S. Dutkiewicz, M. Horvat, E. S. Corbitt, D. P. Krabbenhoft, E. M. Sunderland, "Global Biogeochemical Implications of Mercury Discharges from Rivers and Sediment Burial", Environ. Sci. Technol., DOI.10.1021/es502134t, 2014.
  2. H. M. Amos, D. J. Jacob, C. D. Holmes, J. A. Fisher, Q. Wang, R. M. Yantosca, E. S. Corbitt, E. Galarneau, A. P. Rutter, M. S. Gustin, A. Steffen, J. J. Schauer, J. A. Graydon, V. L. St. Louis, R. W. Talbot, E. S. Edgerton, Y. Zhang, and E. M. Sunderland, Gas-particle partitioning of atmospheric Hg(II) and its effect on global mercury deposition, Atm. Chem. Phys., 12, 591-603, 2012.
  3. Corbitt, E.S., D.J. Jacob, C.D. Holmes, D.G. Streets, and E.M. Sunderland, Global source-receptor relationships for mercury deposition under present-day and 2050 emissions scenarios, Environ. Sci. Technol., 45, 10477-10484, 2011.
  4. Goodsite, M.E., J.M.C. Plane, and H. Skov, Correction to A Theoretical Study of the Oxidation of Hg0 to HgBr2 in the Troposphere, Environ. Sci. Technol., 46, 5262−5262, 2012.
  5. 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.
  6. 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, Atm. Chem. Phys., 10, 12,037-12,057, 2010
  7. Holmes, C.D., D.J. Jacob, R.P. Mason, D.A. Jaffe, Sources and deposition of reactive gaseous mercury in the marine atmosphere, Atm. Environ., 43, 2278-2285, 2009.
  8. Parrella, J.P., D.J. Jacob, Q. Liang, Y. Zhang, L.J. Mickley, B. Miller, M.J. Evans, X. Yang, J.A. Pyle, N. Theys, and M. Van Roozendael, Tropospheric bromine chemistry: implications for present and pre-industrial ozone and mercury, Atmos. Chem. Phys., 12, 723-6,740, 2012.
  9. 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.
  10. Selin, N.E. and D.J. Jacob. Seasonal and spatial patterns of mercury wet deposition in the United States: North American vs. intercontinental sources, Atm. Environ, 42, 5193-5204, 2008.
  11. 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, Glob. Biogeochem. Cycles, 22, GB2011, 2008.
  12. 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.
  13. 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.
  14. 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, Glob. Biogeochem. Cycles, 21, GB1017, 2006.
  15. 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
  16. 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
  17. Wang, Q., D.J. Jacob, J.A. Fisher, J. Mao, E.M. Leibensperger, C.C. Carouge, P. Le Sager, Y. Kondo, J.L. Jimenez, M.J. Cubison, and S.J. Doherty, Sources of carbonaceous aerosols and deposited black carbon in the Arctic in winter-spring: implications for radiative forcing, Atm. Chem. Phys. Discuss., 11, 19395-19442, 2011.
  18. Zhang, Y., L. Jaegle, A. van Donkelaar, R.V. Martin, C.D. Holmes, H.M. Amos, Q. Wang, R. Talbot, R. Artz, S. Brooks, W. Luke, T.M. Holsen, D. Felton, E.K. Miller, K.D. Perry, D. Schmeltz, A. Steffen, R. Torden, P. Weiss-Penzias, R. Zsolway, Nested-grid modeling of mercury over North America, Atmos. Chem. Physics, 12, 6095-6011, 2012.

--Melissa Payer 11:41, 11 January 2013 (EST)