Global Terrestrial Mercury Model: Difference between revisions

From Geos-chem
Jump to navigation Jump to search
Line 68: Line 68:
:(1) In <tt>GeosCore/Makefile</tt>, change these lines:
:(1) In <tt>GeosCore/Makefile</tt>, change these lines:


allhg:                                            # Build Hg/GTMM executable
    allhg:                                            # Build Hg/GTMM executable
        @$(MAKE) libhg
            @$(MAKE) libhg
        @$(MAKE) exehg
            @$(MAKE) exehg
   
   
libhg:                                            # Compile HG/GTMM code
    libhg:                                            # Compile HG/GTMM code
        @$(MAKE) libgtmm               
            @$(MAKE) libgtmm               
        @$(MAKE) lib
            @$(MAKE) lib
   
   
. . .
    . . .
   
   
exehg:                                            # Create Hg/GTMM exec file
    exehg:                                            # Create Hg/GTMM exec file
        $(LD) $(OBJ) $(LHG) -o $(EXE)
            $(LD) $(OBJ) $(LHG) -o $(EXE)
        cp -f $(EXE) $(BIN)
            cp -f $(EXE) $(BIN)


:to:
:to:


allhg:                                            # Build Hg/GTMM executable
    allhg:                                            # Build Hg/GTMM executable
        @$(MAKE) GTMM_Hg=yes libhg
            @$(MAKE) GTMM_Hg=yes libhg
        @$(MAKE) GTMM_HG=yes exehg
            @$(MAKE) GTMM_HG=yes exehg
   
   
libhg:                                            # Compile HG/GTMM code
    libhg:                                            # Compile HG/GTMM code
        @$(MAKE) GTMM_Hg=yes libgtmm               
            @$(MAKE) GTMM_Hg=yes libgtmm               
        @$(MAKE) GTMM_Hg=yes lib
            @$(MAKE) GTMM_Hg=yes lib
    
    
. . .
    . . .
   
   
exehg:                                            # Create Hg/GTMM exec file
    exehg:                                            # Create Hg/GTMM exec file
        $(LD) $(OBJ) $(LINK) -o $(EXE)
            $(LD) $(OBJ) $(LINK) -o $(EXE)
        cp -f $(EXE) $(BIN)
            cp -f $(EXE) $(BIN)


:NOTE: Make sure to indent Makefile lines with one horizontal TAB character.
:NOTE: Make sure to indent Makefile lines with one horizontal TAB character.
Line 102: Line 102:
:(2) In the top-level <tt>Makefile</tt>, change these lines:
:(2) In the top-level <tt>Makefile</tt>, change these lines:


allhg:
    allhg:
        @$(MAKE) -C $(GEOSDIR) allhg
            @$(MAKE) -C $(GEOSDIR) allhg
    
    
libhg:
    libhg:
        @$(MAKE) -C $(GEOSDIR) libhg
            @$(MAKE) -C $(GEOSDIR) libhg
   
   
ligbtmm:
    ligbtmm:
        @$(MAKE) -C $(GEOSDIR) libgtmm
            @$(MAKE) -C $(GEOSDIR) libgtmm
   
   
exehg:
    exehg:
        @$(MAKE) -C $(GEOSDIR) exehg
            @$(MAKE) -C $(GEOSDIR) exehg


:to:
:to:


allhg:
    allhg:
        @$(MAKE) -C $(GEOSDIR) GTMM_Hg=yes allhg
            @$(MAKE) -C $(GEOSDIR) GTMM_Hg=yes allhg
    
    
libhg:
    libhg:
        @$(MAKE) -C $(GEOSDIR) GTMM_Hg=yes libhg
            @$(MAKE) -C $(GEOSDIR) GTMM_Hg=yes libhg
   
   
ligbtmm:
    ligbtmm:
        @$(MAKE) -C $(GEOSDIR) GTMM_Hg=yes libgtmm
            @$(MAKE) -C $(GEOSDIR) GTMM_Hg=yes libgtmm
   
   
exehg:
    exehg:
        @$(MAKE) -C $(GEOSDIR) GTMM_Hg=yes exehg
            @$(MAKE) -C $(GEOSDIR) GTMM_Hg=yes exehg


:(3) In the <tt>Makefile_header.mk</tt> file, change these lines:
:(3) In the <tt>Makefile_header.mk</tt> file, change these lines:


# Command to link to the various library files (-lHeaders should be last!)
    # Command to link to the various library files (-lHeaders should be last!)
LINK      := -L$(LIB) -lKpp -lIsoropia -lGeosUtil -lHeaders
    LINK      := -L$(LIB) -lKpp -lIsoropia -lGeosUtil -lHeaders
LINK      := $(LINK) -lNcUtils $(NCL)
    LINK      := $(LINK) -lNcUtils $(NCL)
   
   
# Commands to link to libraries, for GTMM code (-lHeaders should be last!)
    # Commands to link to libraries, for GTMM code (-lHeaders should be last!)
LHG      := -L$(LIB) -lKpp -lIsoropia -lHg -lGeosUtil -lHeaders
    LHG      := -L$(LIB) -lKpp -lIsoropia -lHg -lGeosUtil -lHeaders
LHG      := $(LINK) -lNcUtils $(NCL)
    LHG      := $(LINK) -lNcUtils $(NCL)


:to:
:to:


# Command to link to the various library files (-lHeaders should be last!)
    # Command to link to the various library files (-lHeaders should be last!)
ifeq ($(GTMM_Hg),yes)
    ifeq ($(GTMM_Hg),yes)
LINK      := -L$(LIB) -lKpp -lIsoropia -lHg -lGeosUtil -lHeaders
    LINK      := -L$(LIB) -lKpp -lIsoropia -lHg -lGeosUtil -lHeaders
else
    else
LINK      := -L$(LIB) -lKpp -lIsoropia -lGeosUtil -lHeaders
    LINK      := -L$(LIB) -lKpp -lIsoropia -lGeosUtil -lHeaders
endif
    endif
   
   
# Commands to link to libraries, for GTMM code (-lHeaders should be last!)
    # Commands to link to libraries, for GTMM code (-lHeaders should be last!)
LINK      := $(LINK) -lNcUtils $(NCL)
    LINK      := $(LINK) -lNcUtils $(NCL)


:(4) You can then compile from the top-level of your source code directory:
:(4) You can then compile from the top-level of your source code directory:


cd Code.v9-01-03
    cd Code.v9-01-03
make -j4 NO_ISO=yes allhg
    make -j4 NO_ISO=yes allhg


We have added made the corresponding updates into [[GEOS-Chem v10-01 benchmark history#v10-01c|GEOS-Chem v10-01c]].
We have added made the corresponding updates into [[GEOS-Chem v10-01 benchmark history#v10-01c|GEOS-Chem v10-01c]].

Revision as of 21:54, 19 March 2014

On this page we describe the Global Terrestrial Mercury Model (GTMM), which is an option in the current GEOS-Chem mercury simulation.

Overview

Description

From Smith‐Downey et al (2010):

The global terrestrial mercury model (GTMM) is a global 1° × 1° biogeochemical model of mercury accumulation and emissions that we apply to the continuous evolution of soil mercury from preindustrial to present day with a monthly time step. Figure 1 presents an overview of the model. Mercury is deposited to the land surface as either wet deposition of Hg(II) or dry deposition of Hg(II) and Hg0. Monthly deposition of Hg(II) and Hg0 are taken from the mercury simulation in the GEOS‐Chem chemical transport model [Selin et al., 2008]. GEOS‐Chem also includes a small deposition flux of Hg(p) emitted by combustion; this Hg(p) is not considered available for terrestrial cycling. In the model, dry deposition of Hg0 and Hg(II) can be fixed into the interior of leaves or remain on leaf and soil surfaces. Hg(II) on leaf and soil surfaces is subject to photoreduction, and Hg0 is subject to revolatilization. Wet deposition of Hg(II) and Hg(II) washed off of leaf and soil surfaces enters soils and can bind to reduced sulfur groups in organic material. At this point, the cycling of mercury in organic soils is controlled by the cycling of carbon and is modeled within the carbon cycling framework of the CASA biogeochemical model [Potter et al., 1993; van der Werf et al., 2003, 2006]. We use the GEOS‐Chem mercury simulation as described by Selin et al. [2008] to supply monthly, spatially resolved, and speciated dry and wet mercury deposition fluxes to the GTMM.

Authors and collaborators:

  • Nicole Smith-Downey (U. Austin) -- Principal Investigator
  • Chris Holmes (Harvard)
  • Bess Corbitt (Harvard)
  • Helen Amos (Harvard)

Implementation notes

  1. GTMM has been implemented into GEOS-Chem v8-03-02 by Claire Carouge.
  2. The input files provided with the code are those described by Smith-Downey et al (2010).
  3. The mercury deposition comes from the Selin et al. 2008 version of the atmospheric mercury simulation.
  4. Meteorology inputs are from GEOS-4.
  5. If a user wishes to run the model with the v8-03-02 version of the code (Holmes et al. 2010, Soerensen et al. 2010), then a new spin-up from the preindustrial with new input files is recommended. Contact corbitt [at] seas [dot] harvard [dot] edu for more information. (I've done a preliminary spin-up and coupled run using v8-03-02 mercury deposition inputs, but have not redone the meteorology inputs with GEOS-5 yet - eds)

Validation

Text to be added

References

Journal Articles

  1. 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. (PDF)
  2. Smith‐Downey, N. V, E. M. Sunderland, and D. J. Jacob, Anthropogenic impacts on global storage and emissions of mercury from terrestrial soils: Insights from a new global model, J. Geophys. Res., 115, G03008, doi:10.1029/2009JG001124, 2010. (PDF)
  3. Soerensen, A.L., E.M. Sunderland, C.D. Holmes, D.J. Jacob, R. Yantosca, H. Skov, J. Christensen, S.A. Strode, and R.P. Mason, An Improved Global Model for Air-Sea Exchange of Mercury: High Concentrations over the North Atlantic, Env. Sci. and Tech., submitted, 2010. (PDF)

Documentation

  1. Please see the GTMM user's manual for information about how to compile and run GEOS-Chem with GTMM.
  2. More information is provided in Appendix 8 of the GEOS-Chem User's Guide.

Previous issues now resolved

Fixed library linking issue when building GTMM into GEOS-Chem

We have fixed an issue that was preventing GTMM from being built properly in GEOS-Chem. This issue has existed probably at least since GEOS-Chem v9-01-03.

Long Chen wrote:

I have met a problem when I compile GEOS-Chem (v9-01-03) with GTMM. Based on the GTMM user's manual, I uncomment the GTMM_Hg C-preprocessor switch in Headers/define.h and compiled using: make -j4 allhg. However, a compilation problem occurs as follows:
   main.o: In function `MAIN__':
   main.F:(.text+0x183b): undefined reference to `cleanupcasaarrays_'
   land_mercury_mod.o: In function `land_mercury_mod_mp_gtmm_dr_':
   land_mercury_mod.F:(.text+0x3060): undefined reference to `gtmm_coupled_'
   make[2]: *** [exehg] Error 1
   make[2]: Leaving directory `/home/longchen/Code.old/Code.v9-01-03/GeosCore'
   make[1]: *** [allhg] Error 2
   make[1]: Leaving directory `/home/longchen/Code.old/Code.v9-01-03/GeosCore'
   make: *** [allhg] Error 2

Does it mean that land_mercury_mod.F and main.F can't call the functions of GTMM_coupled and CleanupCASAarrays?.

Bob Yantosca replied:

To fix the issue in GEOS-Chem v9-01-03, please make these modifications:
(1) In GeosCore/Makefile, change these lines:
    allhg:                                             # Build Hg/GTMM executable
           @$(MAKE) libhg
           @$(MAKE) exehg

    libhg:                                             # Compile HG/GTMM code
           @$(MAKE) libgtmm           		     
           @$(MAKE) lib

    . . .

    exehg:                                             # Create Hg/GTMM exec file
           $(LD) $(OBJ) $(LHG) -o $(EXE)
           cp -f $(EXE) $(BIN)
to:
    allhg:                                             # Build Hg/GTMM executable
           @$(MAKE) GTMM_Hg=yes libhg
           @$(MAKE) GTMM_HG=yes exehg

    libhg:                                             # Compile HG/GTMM code
           @$(MAKE) GTMM_Hg=yes libgtmm           		     
           @$(MAKE) GTMM_Hg=yes lib
 
    . . .

    exehg:                                             # Create Hg/GTMM exec file
           $(LD) $(OBJ) $(LINK) -o $(EXE)
           cp -f $(EXE) $(BIN)
NOTE: Make sure to indent Makefile lines with one horizontal TAB character.
(2) In the top-level Makefile, change these lines:
    allhg:
           @$(MAKE) -C $(GEOSDIR) allhg
 
    libhg:
           @$(MAKE) -C $(GEOSDIR) libhg

    ligbtmm:
           @$(MAKE) -C $(GEOSDIR) libgtmm

    exehg:
           @$(MAKE) -C $(GEOSDIR) exehg
to:
    allhg:
           @$(MAKE) -C $(GEOSDIR) GTMM_Hg=yes allhg
 
    libhg:
           @$(MAKE) -C $(GEOSDIR) GTMM_Hg=yes libhg

    ligbtmm:
           @$(MAKE) -C $(GEOSDIR) GTMM_Hg=yes libgtmm

    exehg:
           @$(MAKE) -C $(GEOSDIR) GTMM_Hg=yes exehg
(3) In the Makefile_header.mk file, change these lines:
    # Command to link to the various library files (-lHeaders should be last!)
    LINK      := -L$(LIB) -lKpp -lIsoropia -lGeosUtil -lHeaders
    LINK      := $(LINK) -lNcUtils $(NCL)

    # Commands to link to libraries, for GTMM code (-lHeaders should be last!)
    LHG       := -L$(LIB) -lKpp -lIsoropia -lHg -lGeosUtil -lHeaders
    LHG       := $(LINK) -lNcUtils $(NCL)
to:
    # Command to link to the various library files (-lHeaders should be last!)
    ifeq ($(GTMM_Hg),yes)
    LINK       := -L$(LIB) -lKpp -lIsoropia -lHg -lGeosUtil -lHeaders
    else
    LINK      := -L$(LIB) -lKpp -lIsoropia -lGeosUtil -lHeaders
    endif

    # Commands to link to libraries, for GTMM code (-lHeaders should be last!)
    LINK      := $(LINK) -lNcUtils $(NCL)
(4) You can then compile from the top-level of your source code directory:
    cd Code.v9-01-03
    make -j4 NO_ISO=yes allhg

We have added made the corresponding updates into GEOS-Chem v10-01c.

--Bob Y. 14:50, 19 March 2014 (EDT)

Outstanding issues

At this point, running the GTMM coupled online to GEOS-Chem will result in higher TGM values than are observed due to the higher soil emissions than in the previous simulation with 2D soil (Selin et al. 2008a). This is an area of ongoing development (eds, nvd).