|
|
(11 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
| __FORCETOC__ | | __FORCETOC__ |
− | '''''[[CO2 simulation|Previous]] | [[POPs simulation|Next]] | [[Guide to GEOS-Chem simulations]]''''' | + | '''''[[CO2 simulation|Previous]] | [[Metals simulation|Next]] | [[Guide to GEOS-Chem simulations]]''''' |
− | #[[Simulations overview]]
| + | #[[GEOS-Chem chemistry mechanisms|Simulations using KPP-built mechanisms]] |
− | #[[GEOS-Chem chemistry mechanisms|Mechanisms for full-chemistry simulations]] (e.g. Standard, Tropchem, etc.) | + | |
| #[[Aerosol-only simulation]] | | #[[Aerosol-only simulation]] |
| + | #[[Carbon simulation]] |
| #[[CH4 simulation]] | | #[[CH4 simulation]] |
| #[[CO2 simulation]] | | #[[CO2 simulation]] |
| #<span style="color:blue">'''Hg simulation'''</span> | | #<span style="color:blue">'''Hg simulation'''</span> |
| + | #[[Metals simulation]] |
| #[[POPs simulation]] | | #[[POPs simulation]] |
| #[[Tagged CO simulation]] | | #[[Tagged CO simulation]] |
Line 17: |
Line 18: |
| | | |
| For a list of current and on-going mercury projects, please visit the [[Hg and POPs Working Group]] page! | | For a list of current and on-going mercury projects, please visit the [[Hg and POPs Working Group]] page! |
− |
| |
− | == Code updates for GEOS-Chem 13 ==
| |
− |
| |
− | Version 13.4 incorporates the Hg chemistry described by Shah et al. (2021). This is a major change to the reduction and oxidation chemistry of mercury in the model.
| |
− |
| |
− | Shah, V., D.J. Jacob, C.P. Thackray, X. Wang, E.M. Sunderland, T.S. Dibble, A. Saiz-Lopez, I. Cernusak, V. Kello, P.J. Castro, R. Wu, and C. Wang, Improved mechanistic model of the atmospheric redox chemistry of mercury, Environ. Sci. Technol., 55, 14445-14456, 2021.
| |
− |
| |
− | === Known issues ===
| |
− |
| |
− | There is a known issue with the mercury simulation in version 13.4. Deposition of Hg(II) is too high and concentrations of Hg(0) are too low. This issue was not present in the work of Shah et al. (2021). Work to identify and correct the issue is ongoing. Until the issue is fixed, users should choose an earlier model version, rather than 13.4.
| |
− |
| |
− | === Note on oxidants ===
| |
− |
| |
− | The mercury simulation requires an archive of oxidant concentrations (e.g. OH, Br) as an input. The simulation will run with oxidant fields archived from many different versions of the model and the oxidant fields may come from a full chemistry simulation that differs from the model version of the Hg simulations. Users should generally select the version of oxidant fields used in the most recent publication or validated model.
| |
− |
| |
− | == Code updates for GEOS-Chem 12 ==
| |
− |
| |
− | === Polar bromine explosion default option ===
| |
− |
| |
− | <span style="color:green">'''''This update was included in [[GEOS-Chem_12#12.2.1|GEOS-Chem 12.2.1]], which was released on 28 Feb 2019.'''''</span>
| |
− |
| |
− | #LPOLARBR option was changed from "false" to "true" in mercury_mod.F to turn on springtime polar bromine explosions by default.
| |
− | #Fixed a bug that prevented this option from working if L_ADD_MBL_BR was "false"
| |
− | #The reduction parameter (<tt>K_RED_JNO2</tt>) was changed from 0.14 to 0.16 to be consistent with the updates
| |
− | --[[User:thackray|Colin Thackray]] ([[User talk:thackray|talk]]) 11:00, 6 February 2019 (UTC)
| |
− |
| |
− | === Restore biomass emissions and do not double count anthropogenic emissions ===
| |
− |
| |
− | <span style="color:green">'''''This update (Git ID: [https://github.com/geoschem/geos-chem/commit/e1e6668b901a49e82e78302bc83e03271af011b0 e1e6668b]) was included in [[GEOS-Chem 12#12.0.1|GEOS-Chem 12.0.1]], which was released on 24 Aug 2018.'''''</span>
| |
− |
| |
− | Colin Thackray submitted the following updates:
| |
− |
| |
− | #A fix in <tt>GeosCore/hcoi_gc_diagn_mod.F90</tt> to prevent biomass burning emissions from being ignored, and also to avoid anthro emissions from being double-counted.
| |
− | #The reduction parameter (<tt>K_RED_JNO2</tt>) was changed from 0.08 to 0.14 to be consistent with the updates in #1.
| |
− | #The uinits of an Hg chemistry diagnostic were fixed as well (kg instead of ppbv).
| |
− | #The EMISS_CONT option was chagned from "true" to "false" in the <tt>HEMCO_Config.rc</tt> file for the Hg simulation. This file ships with the [[GEOS-Chem Unit Tester]].
| |
− |
| |
− | --[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 15:05, 22 August 2018 (UTC)
| |
− |
| |
− | == Code updates for GEOS-Chem v11-02 ==
| |
− |
| |
− | === Benchmark Results ===
| |
− | v11-02_vs_v11-01 : https://github.com/cpthackray/HgBenchmark/blob/59ca77b300225b7fc223aa9406abb55b08bbf358/archive/v11-02_vs_v11-01.pdf
| |
− |
| |
− | v11-02_vs_horowitz17 : https://github.com/cpthackray/HgBenchmark/blob/59ca77b300225b7fc223aa9406abb55b08bbf358/archive/v11-02_vs_horowitz17.pdf
| |
− |
| |
− | input.geos : https://github.com/cpthackray/HgBenchmark/blob/3430ea7ffac05a4807750501c6b5aff58bcfe813/archive/input.geos.v11-02
| |
− |
| |
− | HEMCO_Config.rc : https://github.com/cpthackray/HgBenchmark/blob/3430ea7ffac05a4807750501c6b5aff58bcfe813/archive/HEMCO_Config.rc.v11-02
| |
− |
| |
− | === Added chemistry and ocean from Horowitz et al. 2017 ===
| |
− | <span style="color:green">'''''These changes were included in [[GEOS-Chem v11-02#v11-02f|v11-02f]]'''''</span>
| |
− |
| |
− | '''''[[User:Thackray|Colin Thackray]] wrote:'''''
| |
− | ====Input.geos change:====
| |
− | <blockquote>The lines: </blockquote>
| |
− | Use anthro Hg emiss for : 2006
| |
− | Use future emissions? : PRESENT
| |
− |
| |
− | <blockquote>Have been removed from input.geos because the options set were no longer used in the simulation.</blockquote>
| |
− | ====Addition of WHET emission inventory for Hg0, Hg2, HgP:====
| |
− | <blockquote>Emissions from Zhang et al. 2016, PNAS; As used in Horowitz et al. 2017;
| |
− | An updated HEMCO_Config.rc should have a flag for turning on these emissions (AMAP emissions should be turned off if using WHET):</blockquote>
| |
− | --> AMAP_COMB : false
| |
− | --> AMAP_INDS : false
| |
− | --> AMAP_INTW : false
| |
− | --> WHET : true
| |
− | <blockquote>The default inventory is for 2010 (WHET_$SPC_2010.nc, one $SPC for each of Hg0, Hg2, HgP)</blockquote>
| |
− | ====New chemistry options in HEMCO_Config.rc====
| |
− | <blockquote>In HEMCO_Config.rc, the following chemistry flags, if set to “true”, turn on the below sets of reactions:</blockquote>
| |
− | LHALOGENCHEM:
| |
− | Hg0 + Br --> HgBr
| |
− | HgBr {+ M} --> Hg0 + Br
| |
− | HgBr + Br --> Hg0 + Br2
| |
− | HgBr + NO2 --> Hg0 + products
| |
− | HgBr + Y --> HgBrY; Y = {NO2,HO2,ClO,BrO,OH,Br}
| |
− | (HgBrY all part of the single Hg2 tracer)
| |
− | Hg0 + Cl --> HgCl
| |
− | HgCl + Cl --> Hg0 + Cl2
| |
− | HgCl + Y --> HgClY; Y = {NO2,HO2,ClO,BrO,OH,Br}
| |
− | (HgClY all part of the single Hg2 tracer)
| |
− | LHGAQCHEM:
| |
− | Hg0(aq) + O3(aq) --> Hg2(aq)
| |
− | Hg0(aq) + HOCl(aq) --> Hg2(aq)
| |
− | Hg0(aq) + OH(aq) --> Hg2(aq)
| |
− | LRED_JNO2:
| |
− | Hg2(aq) + hv --> Hg0(aq)
| |
− | LOHO3CHEM:
| |
− | Previous to v11-02 OH/O3 chemistry (Probably should be FALSE if using the above)
| |
− | LRED_INPLUME:
| |
− | In-plume reduction, should be FALSE when using WHET emissions
| |
− | <blockquote></blockquote>
| |
− | ====Offline ocean====
| |
− | <blockquote>When the existing switch in input.geos’s mercury menu</blockquote>
| |
− | “Use dynamic ocean Hg? : “
| |
− | <blockquote>is set to F, the model will now use prescribed ocean concentrations to calculate evasion fluxes. The ocean concentration path is defined in HEMCO_Config.rc under GLOBAL_OCEAN, and its default is the MITgcm ocean output used by Horowitz et al. (2017). These ocean concentrations are fixed, but time-varying prescribed ocean concentrations may be used. The units of the ocean concentrations in the file must be [mol/m3].</blockquote>
| |
− | ====Offline oxidants fields====
| |
− | <blockquote>To do the reactions activated by each chemistry flag, the model uses offline oxidant concentrations from netcdf files defined in HEMCO_Config.rc. The default fields on gcgrid are from Horowitz et al. (2017). If using other sources for oxidant concentrations, the units of each species in the netcdf files must be as follows:</blockquote>
| |
− | OH : kg/m3
| |
− | Br_trop : ppbv
| |
− | Br_strat : pptv
| |
− | BrO_trop : ppbv
| |
− | BrO_strat : pptv
| |
− | Cl : ppbv
| |
− | ClO : ppbv
| |
− | NO2 : ppbv
| |
− | NO : ppbv
| |
− | HO2_trop : v/v
| |
− | HO2_strat : v/v
| |
− | HOCl : ppbv
| |
− | O3 : v/v
| |
− | OA : ug/m3
| |
− | ====New diagnostic quantities====
| |
− | <blockquote>Along with the above new chemistry and ocean options, associated diagnostics have been added/updated.</blockquote>
| |
− | HG-SRCE:
| |
− | Hg_up : Gross ocean evasion, from dynamic or offline ocean
| |
− | Hg_down : Gross ocean uptake, from dynamic or offline ocean
| |
− | PL-HG2-$:
| |
− | Hg2_BrY : Production of Hg2 from BrY reactions
| |
− | Hg2_ClY : Production of Hg2 from ClY reactions
| |
− | HgBr2 : oxidation of HgBr by Br
| |
− | HgBrBrO : oxidation of HgBr by BrO
| |
− | HgBrHO2 : oxidation of HgBr by HO2
| |
− | HgBrNO2 : oxidation of HgBr by NO2
| |
− | HgBrClO : oxidation of HgBr by ClO
| |
− | HgBrOH : oxidation of HgBr by OH
| |
− | --[[User:Thackray|Colin Thackray]] ([[User talk:Thackray|talk]]) 16:30, 10 May 2018 (UTC)
| |
− | ====K_RED_JNO2====
| |
− | <blockquote>In case of changes in the model or Hg code, K_RED_JNO2 (in /GeosCore/mercury_mod.F) might need to be tuned. To do so, follow the steps listed below:</blockquote>
| |
− | <blockquote>1. Modify the initial K_RED_JNO2 value by ± 10 %</blockquote>
| |
− | <blockquote>2. Re-compile the code</blockquote>
| |
− | <blockquote>3. Perform a Hg simulation</blockquote>
| |
− | <blockquote>4. Visualize the results using the Hg benchmark code [https://github.com/GC-Hg/HgBenchmark]</blockquote>
| |
− | <blockquote>5. Repeat steps #1-4 as needed.</blockquote>
| |
− | <blockquote> The same parameter can usually be used for Hg simulations with MERRA-2/GEOS-FP meteorological fields and at 4x5 or 2x2.5 horizontal resolution. For nested simulations, users are encouraged to test and adapt. For v11-02, a 40 % increase is recommended if the dynamic ocean is used.</blockquote>
| |
− | --[[User:Angoth|Hélène Angot]] ([[User talk:Angoth|talk]]) 15:35, 15 May 2018 (UTC)
| |
− | === Fixed typo in nested grid transport routine INIT_WINDOW ===
| |
− |
| |
− | <span style="color:green">'''''This fix was included in [[GEOS-Chem v11-02#v11-02a|v11-02a]] and approved on 12 May 2017.'''''</span>
| |
− |
| |
− | '''''[[User:Bmy|Bob Yantosca]] wrote:'''''
| |
− |
| |
− | <blockquote>I did some testing with the geos5_05x0666_Hg_na code. Here’s what I found:
| |
− |
| |
− | (1) There was a typo in routine INIT_WINDOW. The code in <span style="color:red">RED</span>:</blockquote>
| |
− |
| |
− | #if defined( <span style="color:red">GEOS5</span> )
| |
− | dlon = 2.*pi / float(540) !(dan)
| |
− | ... etc ...
| |
− |
| |
− | <blockquote>Should have been:</blockquote>
| |
− |
| |
− | #if defined( <span style="color:green">GEOS_5</span> )
| |
− | dlon = 2.*pi / float(540) !(dan)
| |
− | ... etc ...
| |
− |
| |
− | <blockquote>Because <code>GEOS_5</code> is the proper C-preprocessor switch. (That is set in the <code>USER_DEFS</code> variable of the <tt>Makefile_header.mk</tt> file, <code>-DGEOS_5</code>).
| |
− |
| |
− | (2) The <tt>BC.20080101</tt> file that ships with the unit tester appears to have been causing the seg fault that Jaegun Jung reported. I created a new file for 2010 (<tt>BC.20100101</tt>) from the geos5_4x5_Hg simulation and used that in the geos5_050666_Hg_na simulation. I was able to finish the entire day of simulation without any seg faults with the new file, whereas the old file caused a seg fault on the first timestep.
| |
− |
| |
− | So I would recommend (1) adding the fix in the #ifdef and (2) generating new boundary condition files from a 4x5 Hg simulation.</blockquote>
| |
− |
| |
− | --[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 18:42, 24 February 2017 (UTC)
| |
− |
| |
− | === Bug fixes for Hg emissions ===
| |
− |
| |
− | <span style="color:green">'''''This update was included in [[GEOS-Chem v11-02#v11-02c|v11-02c]] and approved on 21 Sep 2017.'''''</span>
| |
− |
| |
− | '''''Chris Holmes wrote:'''''
| |
− |
| |
− | :The [HEMCO_Config.rc] file corrects two Hg emission bugs that were found and fixed by Amanda Giang (MIT). I believe all Hg simulations using HEMCO are affected.
| |
− |
| |
− | :#Emissions that are labelled as “HgP” in emission inventories should be emitted as the GEOS-Chem species Hg2. This is because GEOS-Chem assumes that all oxidized Hg(II) is reactive and actively partitions between gas and particle phases. HgP is not an emitted species in the current mercury simulation.
| |
− | :#China and Europe regional inventories of HgP were previously neglected in GEOS-Chem. This accounts for emission controls, as described by Yanxu Zhang et al. 2016 (PNAS).
| |
− |
| |
− | :No changes to the mercury source code are required to implement these changes.
| |
− |
| |
− | --[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|talk]]) 15:00, 25 July 2017 (UTC)
| |
− |
| |
− | == 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.
| |
− |
| |
− | <span style="color:green">'''Benchmarks for Hg v11-01 (compared to a default v9-02 simulation) can be found here: http://ftp.as.harvard.edu/gcgrid/geos-chem/Hg_benchmarks/Hg_benchmark_v11-01c/'''</span>
| |
− |
| |
− | === Note for New Users ===
| |
− |
| |
− | The Hg v11-01 simulation has been tested and benchmarked at 4x5 degree resolution with GEOS-5 and GEOS-FP meteorology. If other resolutions or meteorological fields are desired, users should first run a benchmark simulation to confirm that the model is performing as expected. Changes to resolution and meteorology often require adjustments to model parameters including photoreduction rate (to account for cloud changes), soil emission parameters (to account for soil temperature and moisture changes), and ocean processes (to account for temperature and radiation changes).
| |
− |
| |
− | Some users may want to enable the updated ocean rate coefficients (Shaojie Song, developer) described below. These are not enabled by default. The same caveats about photoreduction and soil emission parameters apply to using the updated ocean coefficients, and users are encouraged to benchmark and adjust as required if the updated coefficients are used.
| |
− |
| |
− | === Hg emission updates ===
| |
− |
| |
− | <span style="color:green">'''''These updates were included in [[GEOS-Chem v11-01#v11-01c|v11-01c]] and approved on 14 Sept 2015.</span>
| |
− |
| |
− | Yanxu Zhang and Amanda Giang prepared new Hg emissions with adjustments for in-plume reduction and emission controls. The following emission inventories were implemented in [[GEOS-Chem v11-01#v11-01c|GEOS-Chem v11-01c]] via the [[HEMCO|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.
| |
− |
| |
− | ==== Emission controls ====
| |
− |
| |
− | Turning on the <code>EMISS_CONT</code> option in HEMCO_Config.rc applies modifications to baseline AMAP/UNEP, NEI (US), and NPRI (Canada) inventories to account for speciation shifts associated with use of air pollution control devices. In the US, Canada, the EU, and China, 50% of Hg2/P emissions are shifted to Hg0. These assumptions are based on Zhang et al. 2016.
| |
− |
| |
− | This option is turned on by default.
| |
− |
| |
− | --[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|talk]]) 17:48, 6 January 2016 (UTC)
| |
− |
| |
− | === Hg ocean rate coefficients (option) ===
| |
− |
| |
− | The developments described below are an option that is not enabled by default. Users must edit the source code within mercury modules to enable these changes. Users are further encouraged to run a benchmark simulation to ensure that the simulation is behaving as expected. (Changes to photoreduction and other model parameters may be required.)
| |
− |
| |
− | <span style="color:green">'''''This update was included in [[GEOS-Chem v11-01#v11-01c|v11-01c]] and approved on 14 Sept 2015.</span>
| |
− |
| |
− | '''''Shaojie Song wrote:'''''
| |
− |
| |
− | :Two coefficients in the GEOS-Chem Hg slab ocean module, the dark oxidation reaction rate of aqueous Hg0 (<code>k_ox_dark</code>) and partitioning coefficient between aqueous HgII and HgP (<code>Kd_part</code>), 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 [http://www.atmos-chem-phys.net/15/7103/2015/acp-15-7103-2015.html Song et al. (2015)]. This option of using the optimized ocean coefficients can be turned on by setting <code>LOCEANCOEF=.TRUE.</code> in <code>mercury_mod.F</code>. The aqueous-phase photochemical reduction rate of atmospheric HgII (<code>K_RED_OH</code> or <code>K_RED_JNO2</code> in <code>mercury_mod.F</code>) 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'', <u>Atmos. Chem. Phys.</u>, '''15''', 7103-7125, doi:10.5194/acp-15-7103-2015, 2015.
| |
− |
| |
− | --[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|talk]]) 13:57, 20 August 2015 (UTC)
| |
− |
| |
− | === Hg ocean MLD bug fixes ===
| |
− |
| |
− | <span style="color:green">'''''These fixes were included in [[GEOS-Chem v11-01#v11-01c|v11-01c]] and approved on 14 Sept 2015.</span>
| |
− |
| |
− | 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 <code>HEMCO_Config.rc</code> file for the mercury simulation points to <code>mld.geos.2x25.nc</code> 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, <code>MLD_DReqDT.geos.4x5</code>, which has some differences in magnitude and distribution. Pointing to the consistent file in HEMCO (<code>MLD_DReqDT.geos.2x25.nc</code>) 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 <code>GET_MLD_FOR_LAST_MONTH</code> 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 <code>ocean_mercury_mod.F</code>):''
| |
− | 2025,2027d2024
| |
− | < MLDav = MLD
| |
− | < dMLD = 0.0
| |
− | <
| |
− | 2029,2031c2026,2028
| |
− | <span style="color:red">< !DO J = 1, JJPAR
| |
− | < !DO I = 1, IIPAR
| |
− | < !dMLD(I,J) = (MLD(I,J) - prevMLD(I,J)) / (3.6d3 *24d0 * 30.5d0)</span>
| |
− | ---
| |
− | <span style="color:green">> DO J = 1, JJPAR
| |
− | > DO I = 1, IIPAR
| |
− | > dMLD(I,J) = (MLD(I,J) - prevMLD(I,J)) / (3.6d3 *24d0 * 30.5d0)</span>
| |
− | 2033,2035c2030,2032
| |
− | <span style="color:red">< !MLDav(I,J) = prevMLD(I,J) + 0.5d0 * (MLD(I,J) - prevMLD(I,J))
| |
− | < !ENDDO
| |
− | < !ENDDO</span>
| |
− | ---
| |
− | <span style="color:green">> MLDav(I,J) = prevMLD(I,J) + 0.5d0 * (MLD(I,J) - prevMLD(I,J))
| |
− | > ENDDO
| |
− | > ENDDO</span>
| |
− |
| |
− | '''''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 <code>READ_HG2_PATITIONING</code> in <code>OCEAN_MERCURY_MOD</code>:
| |
− |
| |
− | 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.
| |
− |
| |
− | --[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|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'', <u>Atmospheric Chemistry and Physics</u>, '''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'', <u>Environ. Sci. Technol.</u>, '''48'''(22), 13540-13548.
| |
− | *Zhang, Y., et al. (2012), ''Nested-grid simulation of mercury over North America'', <u>Atmospheric Chemistry and Physics Discussions</u>, '''12''', 2603-2646.
| |
− | *Zhang, L., et al. (2015), ''Updated Emission Inventories for Speciated Atmospheric Mercury from Anthropogenic Sources in China'', <u>Environ Sci Technol.</u>
| |
− | *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'', <u>Atmospheric Chemistry and Physics Discussions</u>, '''14'''(19), 26803-26855.
| |
− |
| |
− | --[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|talk]]) 18:05, 26 May 2015 (UTC)
| |
− |
| |
− | === Updates to Arctic Hg processes===
| |
− |
| |
− | <span style="color:green">'''''These updates were included in [[GEOS-Chem v11-01#v11-01c|v11-01c]] and approved on 14 Sept 2015.</span>
| |
− |
| |
− | Updates are based on Fisher et al. (2012) and Fisher et al. (2013) and are detailed in those publications and their supplements. They include:
| |
− |
| |
− | <blockquote>
| |
− | ;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.
| |
− | </blockquote>
| |
− |
| |
− | '''<span style="color:red">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.</span>'''
| |
− |
| |
− | References
| |
− | #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.
| |
− | #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.
| |
− | #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.
| |
− | #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.
| |
− | #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.
| |
− | #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.
| |
− | #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-01c Hg Updates ===
| |
− |
| |
− | ==== Incorrect Arctic Hg Riverflow ====
| |
− |
| |
− | <span style="color:green">'''''This update, which corrects a problem introduced in v11-01c, was included in [[GEOS-Chem v11-01#v11-01e|v11-01e]] (approved 04 Jan 2016).'''''</span>
| |
− |
| |
− | '''''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 )
| |
− |
| |
− | --[[User:Lizzie Lundgren|Lizzie Lundgren]] ([[User talk:Lizzie Lundgren|talk]]) 22:59, 23 November 2015 (UTC)<br>--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 18:52, 4 January 2016 (UTC)
| |
− |
| |
− | ==== Module-level Variables Defined Locally ====
| |
− |
| |
− | <span style="color:green">'''''This update, which corrects a problem introduced in v11-01c, was included in [[GEOS-Chem v11-01#v11-01e|v11-01e]] (approved 04 Jan 2016).'''''</span>
| |
− |
| |
− | '''''Jenny Fisher writes:'''''
| |
− |
| |
− | :I’ve just found one problem in the v11-01c Hg code. In lines 4341 and 4342, you have defined RIVERFLOW and NPP_SCF as local variables within the subroutine. But these are actually already defined as module variables (lines 194 and 231), and the code in init_ocean_mercury is supposed to set these up to be used later. So by re-defining them as local variables, they were essentially being set to 0 in the rest of the code.
| |
− |
| |
− | :The solution is simply to remove these two lines:
| |
− | 4341 REAL(fpp), DIMENSION(12) :: RIVERFLOW
| |
− | 4342 REAL(fpp) :: NPP_SCF
| |
− |
| |
− | --[[User:Lizzie Lundgren|Lizzie Lundgren]] ([[User talk:Lizzie Lundgren|talk]]) 23:02, 23 November 2015 (UTC)<br>--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 18:52, 4 January 2016 (UTC)
| |
− |
| |
− | === Correct too-high emissions of Hg2 over China and EU ===
| |
− |
| |
− | <span style="color:green">'''''This update, which corrects a problem introduced in v11-01c, was included in [[GEOS-Chem v11-01#v11-01f|v11-01f]] (approved 16 Apr 2016).'''''</span>
| |
− |
| |
− | After applying the [[Mercury#Hg_emission_updates|Hg emission updates in v11-01c]], higher than expected Hg2 emissions were observed over China and Europe when using the <code>EMISS_CONT</code> option. To resolve this issue, Amanda Giang updated the NEI and NPRI data files to correct for an error in the conversion from kg to kg/m2/s. Different hierarchies were also assigned to the the various emission regions in HEMCO_Config.rc to avoid issues when combining regional emission inventories.
| |
− |
| |
− | --[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|talk]]) 18:07, 6 January 2016 (UTC)<br>--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 15:35, 30 March 2016 (UTC)
| |
− |
| |
− | === Parallelization bug fixes for GEOS-5 Hg simulations ===
| |
− |
| |
− | ==== Fixes included in v11-01g ====
| |
− |
| |
− | <span style="color:green">'''''This fix was included in [[GEOS-Chem v11-01#v11-01g|v11-01g]] (approved 28 Sep 2016).'''''</span>
| |
− |
| |
− | Bob Yantosca ([[GCST]]) found and fixed two parallelization errors that had been causing the GEOS-5 Hg simulations to fail unit tests, as first described by Lizzie Lundgren:
| |
− |
| |
− | <blockquote>
| |
− | There are [[GEOS-Chem_v11-01#Mercury_simulation_inconsistently_failing_optimization_unit_tests_in_v11-01c|inconsistent differences in the diagnostics and ocean restart files]] when running unit tests on GEOS-5 4x5 and 2x2.5 mercury simulations in [[GEOS-Chem_v11-01_benchmark_history#v11-01c|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.
| |
− |
| |
− | --[[User:Lizzie Lundgren|Lizzie Lundgren]] ([[User talk:Lizzie Lundgren|talk]]) 19:05, 9 September 2015 (UTC)
| |
− | </blockquote>
| |
− |
| |
− | The fixes are as follows:
| |
− |
| |
− | 1. In routine <code>CHEMMERCURY</code> (located in module <code>GeosCore/mercury_mod.F</code>), we added the code in <span style="color:green">GREEN</span>:
| |
− |
| |
− | !=================================================================
| |
− | ! Add deposited Hg(II) to the ocean module. OCEAN_MERCURY_MOD
| |
− | ! determines whether the box is marine, so we don't need to here.
| |
− | ! We should add an if statement to test whether DYNAMIC LAND is
| |
− | ! active.
| |
− | <span style="color:green">!
| |
− | ! IMPORTANT NOTE: DEP_Hg2G, DEP_Hg2P, and DEP_Hg2_DRY are defined
| |
− | ! on each 3-D (I,J,K) iteration. But in routines ADD_Hg2_DD,
| |
− | ! ADD_Hg2_WD and ADD_Hg2_SNOWPACK, these are saved to diagnostic
| |
− | ! arrays that have only 2-D (I,J) spatial size. This can cause
| |
− | ! slight numerical differences when OpenMP parallelization is
| |
− | ! turned on, because more than one CPU is trying to write to the
| |
− | ! diagnostic arrays simultaneously. To avoid this situation, we
| |
− | ! call ADD_Hg2_WD and ADD_Hg2_SNOWPACK from within an
| |
− | ! !$OMP CRITICAL block, which ensures that only one CPU at a time
| |
− | ! can write to the diagnostic arrays. (bmy, 4/20/16)
| |
− | !=================================================================
| |
− | !$OMP CRITICAL</span>
| |
− | IF ( LDYNOCEAN ) THEN
| |
− | NN = ID_Hg2(N)
| |
− | CALL ADD_Hg2_DD( I, J, NN, DEP_Hg2G )
| |
− |
| |
− | NN = ID_HgP(N)
| |
− | CALL ADD_HgP_DD( I, J, NN, DEP_Hg2P )
| |
− | ENDIF
| |
− |
| |
− | ! Add deposited Hg(II) to the snowpack
| |
− | IF ( LHGSNOW ) THEN
| |
− | NN = ID_Hg2(N)
| |
− | DEP_HG2_DRY = DEP_HG2g_DRY + DEP_HG2p_DRY
| |
− | CALL ADD_HG2_SNOWPACK( I, J, NN, DEP_HG2_DRY, State_Met )
| |
− | ENDIF
| |
− | <span style="color:green">!$OMP END CRITICAL</span>
| |
− |
| |
− | 2. In routine <code>NFCLDMX</code> (located in <code>GeosCore/convection_mod.F</code>), we replaced the code in <span style="color:red">RED</span>:
| |
− |
| |
− | <span style="color:red"> !=================================================
| |
− | ! Pass the amount of Hg2 and HgP lost in wet
| |
− | ! scavenging [kg] to "ocean_mercury_mod.f" via
| |
− | ! ADD_Hg2_WET and ADD_HgP_WET. We must also divide
| |
− | ! by DNS, the # of internal timesteps.
| |
− | ! (sas, bmy, eck, eds, 1/19/05, 1/6/06, 7/30/08)
| |
− | !=================================================
| |
− | IF ( IS_Hg .and. IS_Hg2( IC ) ) THEN</span>
| |
− |
| |
− | ! Wet scavenged Hg(II) in [kg/s], converted
| |
− | ! to [kg] by multiplying by NDT
| |
− | WET_Hg2 = T0 * AREA_M2 / DNS * NDT
| |
− |
| |
− | ! Pass to "ocean_mercury_mod.f"
| |
− | CALL ADD_Hg2_WD( I, J, IC, WET_Hg2 )
| |
− | CALL ADD_Hg2_SNOWPACK( I, J, IC, WET_Hg2,
| |
− | & State_Met )
| |
− | ENDIF
| |
− |
| |
− | <span style="color:red">IF ( IS_Hg .and. IS_HgP( IC ) ) THEN</span>
| |
− |
| |
− | ! Wet scavenged Hg(P) in [kg/s], converted
| |
− | ! to [kg] by multiplying by NDT
| |
− | WET_HgP = T0 * AREA_M2 / DNS * NDT
| |
− |
| |
− | ! Pass to "ocean_mercury_mod.f"
| |
− | CALL ADD_HgP_WD( I, J, IC, WET_HgP )
| |
− | CALL ADD_Hg2_SNOWPACK( I, J, IC, WET_HgP,
| |
− | & State_Met )
| |
− | ENDIF
| |
− |
| |
− | with the code in <span style="color:green">GREEN</span>:
| |
− |
| |
− | !=====================================================
| |
− | ! Pass the amount of Hg2 and HgP lost in wet
| |
− | ! scavenging [kg] to "ocean_mercury_mod.f" via
| |
− | ! ADD_Hg2_WET and ADD_HgP_WET. We must also divide
| |
− | ! by DNS, the # of internal timesteps.
| |
− | ! (sas, bmy, eck, eds, 1/19/05, 1/6/06, 7/30/08)
| |
− | <span style="color:green">!
| |
− | ! IMPORTANT NOTE: WET_Hg2 and WET_HgP are defined
| |
− | ! on each 3-D (I,J,K) iteration. But in routines
| |
− | ! ADD_Hg2_WD and ADD_Hg2_SNOWPACK, these are saved to
| |
− | ! diagnostic arrays that have only 2-D (I,J) spatial
| |
− | ! size. This can cause slight numerical differences
| |
− | ! when OpenMP parallelization is turned on, because
| |
− | ! one CPU is trying to write to the diagnostic arrays
| |
− | ! simultaneously. To avoid this situation, we call
| |
− | ! ADD_Hg2_WD and ADD_Hg2_SNOWPACK from within an
| |
− | ! !$OMP CRITICAL block, which ensures that only one
| |
− | ! CPU at a time can write to the diagnostic arrays.
| |
− | ! (bmy, 4/20/16)
| |
− | !=====================================================
| |
− | IF ( ITS_A_MERCURY_SIM ) THEN
| |
− | !$OMP CRITICAL
| |
− | ! Is it a Hg2 tracer?
| |
− | IF ( IS_Hg2( IC ) ) THEN</span>
| |
− |
| |
− | ! Wet scavenged Hg(II) in [kg/s], converted
| |
− | ! to [kg] by multiplying by NDT
| |
− | WET_Hg2 = T0 * AREA_M2 / DNS * NDT
| |
− |
| |
− | ! Pass to "ocean_mercury_mod.f"
| |
− | CALL ADD_Hg2_WD ( I, J, IC, WET_Hg2 )
| |
− | CALL ADD_Hg2_SNOWPACK( I, J, IC, WET_Hg2,
| |
− | & State_Met )
| |
− | ENDIF
| |
− |
| |
− | <span style="color:green">! Is it a HgP tracer?
| |
− | IF ( IS_HgP( IC ) ) THEN</span>
| |
− |
| |
− | ! Wet scavenged Hg(P) in [kg/s], converted
| |
− | ! to [kg] by multiplying by NDT
| |
− | WET_HgP = T0 * AREA_M2 / DNS * NDT
| |
− |
| |
− | ! Pass toq "ocean_mercury_mod.f"
| |
− | CALL ADD_HgP_WD ( I, J, IC, WET_HgP )
| |
− | <span style="color:green">!------------------------------------------------------------------------------
| |
− | ! NOTE: This call to ADD_HG2_SNOWPACK is known to cause very small (numerical
| |
− | ! noise) differences in slot #4 of the PL-HG2-$ diagnostic when comparing
| |
− | ! a GEOS-5 Hg simulation done on a single processor with one done on multi-
| |
− | ! processors. (In other words, the unit test result is "yellow"). The
| |
− | ! magnitude of the differences are very small, and on the order of numerical
| |
− | ! noise.
| |
− | !
| |
− | ! We hypothesize that this issue may have two causes: (1) updating the AD03
| |
− | ! array (which is 2-D) from within a 3-D parallel loop, and (2) possible
| |
− | ! numerical roundoff when casting the REAL*8 value to REAL*4.
| |
− | !
| |
− | ! The results of the simulation in the tracer restart files are identical,
| |
− | ! so technically, the GEOS-5 Hg simulations pass the unit test.
| |
− | !
| |
− | ! It is probably not possible to avoid the numerical differences in slot #4
| |
− | ! of the PL-HG2-$ diagnostic without redesiging the diagnostics. For the
| |
− | ! time being, we will leave the code as-is but just note that differences
| |
− | ! will occur in this diagnostic.
| |
− | !
| |
− | ! -- Bob Yantosca (22 Apr 2016)
| |
− | !</span>
| |
− | CALL ADD_Hg2_SNOWPACK( I, J, IC, WET_HgP,
| |
− | & State_Met )
| |
− | <span style="color:green">!------------------------------------------------------------------------------</span>
| |
− | ENDIF
| |
− | <span style="color:green">!$OMP END CRITICAL
| |
− | ENDIF</span>
| |
− |
| |
− | The two fixes above are sufficient to get the restart files to have identical results. This was not the case before.
| |
− |
| |
− | ==== Unresolved issues ====
| |
− |
| |
− | Slot #4 of the <code>PL-HG2-$</code> diagnostic still consistently shows minor differences (at the level of numerical noise) in the <code>geos5_4x5_Hg</code>, <code>geos5_4x5_tagHg</code>, and <code>geos5_2x25_Hg</code> unit tests. In other words, the unit tests for these simulations return <span style="bgcolor:yellow">YELLOW</span> instead of <span style="bgcolor:green">GREEN</span> results. We can consider that the unit test has "passed with warnings".
| |
− |
| |
− | Bob Yantosca ([[GCST]]) has traced the cause of these differences to the second call to <code>ADD_Hg2_SNOWPACK</code> in routine <code>NFCLDMX</code> (in <code>GeosCore/convection_mod.F</code>):
| |
− |
| |
− | CALL ADD_Hg2_SNOWPACK( I, J, IC, WET_HgP,
| |
− | & State_Met )
| |
− |
| |
− | Within <code>ADD_HG2_SNOWPACK</code>, values are written to the <code>AD03(I,J,21,1)</code> diagnostic array. This array archives the amount of Hg2 and HgP that is deposited onto snow or ice.
| |
− |
| |
− | Resolving the issue may involve a rewrite of the program flow within the Hg modules. For the time being, we will leave the code this as-is, but just note that it occurs. We have placed the following comment in <code>ADD_Hg2_SNOWPACK</code>:
| |
− |
| |
− | !----------------------------------------------------------------------------
| |
− | ! NOTE: Archiving to AD03(I,J,21,1) causes the slot #4 of the PL-HG2-$
| |
− | ! diagnostic to yield different results when comparing a GEOS-5 Hg simulation
| |
− | ! done on a single processor to one done with multi-processors. (In other
| |
− | ! words, the unit test result is "yellow"). The magnitude of the differences
| |
− | ! are very small, and on the order of numerical noise.
| |
− | !
| |
− | ! We have traced this behavior to the call to ADD_Hg2_SNOWPACK for HgP from
| |
− | ! routine NFCLDMX (in GeosCore/convection_mod.f). We hypothesize that this
| |
− | ! issue may have two causes: (1) updating the AD03 array (which is 2-D) from
| |
− | ! within a 3-D parallel loop, and (2) possible numerical roundoff when
| |
− | ! casting the REAL*8 value to REAL*4.
| |
− | !
| |
− | ! The results of the simulation in the tracer restart files are identical,
| |
− | ! so technically, the GEOS-5 Hg simulations pass the unit test.
| |
− | !
| |
− | ! It is probably not possible to avoid the numerical differences in slot #4
| |
− | ! of the PL-HG2-$ diagnostic without redesiging the diagnostics. For the
| |
− | ! time being, we will leave the code as-is but just note that differences
| |
− | ! will occur in this diagnostic.
| |
− | !
| |
− | ! -- Bob Yantosca (22 Apr 2016)
| |
− | !
| |
− | ! Store diagnostic of TOTAL HgII/HgP deposition to snow/ice
| |
− | IF ( ND03 > 0 ) AD03(I,J,21,1) = AD03(I,J,21,1) +
| |
− | & FRAC_SNOW_OR_ICE *
| |
− | & MAX(DEP_HG2, 0e+0_fp)
| |
− | !----------------------------------------------------------------------------
| |
− |
| |
− | --[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 18:17, 22 April 2016 (UTC)
| |
− |
| |
− | === Update photoreduction constants and soil emissions ===
| |
− |
| |
− | <span style="color:green">'''''This update was included in [[GEOS-Chem v11-01#v11-01g|v11-01g]] (approved 28 Sep 2016).'''''</span>
| |
− |
| |
− | Jenny Fisher updated the photoreduction constants and [[Mercury#Soil_Emissions|soil emissions]] for consistency with the recent mercury updates added to GEOS-Chem v11-01 (for 4x5 resolution and GEOS-FP/GEOS-5 met fields). For more information, see the [[Mercury#Note_for_New_Users|note for new users]]. New 4x5 soil Hg files were also provided and can be found at:
| |
− |
| |
− | ftp://ftp.as.harvard.edu/gcgrid/data/ExtData/HEMCO/MERCURY/v2014-09/SOIL/soilHg.presentday.v11-01.geos5.4x5.nc
| |
− | ftp://ftp.as.harvard.edu/gcgrid/data/ExtData/HEMCO/MERCURY/v2014-09/SOIL/soilHg.presentday.v11-01.geosfp.4x5.nc
| |
− |
| |
− | --[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|talk]]) 17:22, 29 April 2016 (UTC)
| |
− |
| |
− | === Add option for QFED & FINN biomass burning emissions ===
| |
− |
| |
− | <span style="color:green">'''''This update was included in [[GEOS-Chem v11-01 benchmark history#v11-01j|v11-01j]] and approved on 03 Dec 2016'''''</span>
| |
− |
| |
− | Jenny Fisher worked with Christoph Keller to add the option for [[QFED_biomass_burning_emissions|QFED]] and [[FINNv1 biomass burning emissions|FINNv1]] biomass burning emissions in Hg simulations. These options can be found in the <code>HEMCO_Config.rc</code> and they are both set to <code>false</code> by default. This update requires [[Implementation_of_HEMCO_in_GEOS-Chem#Features_added_in_v11-01j|HEMCO v2.0.003]] or later.
| |
− |
| |
− | --[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|talk]]) 17:22, 29 April 2016 (UTC)
| |
− |
| |
− | === Fixes for minor technical issues ===
| |
− |
| |
− | ==== Avoid floating-point exception in OCEAN_MERCURY_READ ====
| |
− |
| |
− | <span style="color:green">'''''This fix was included in [[GEOS-Chem v11-01 benchmark history#v11-01j|v11-01j]] and approved on 03 Dec 2016'''''</span>
| |
− |
| |
− | '''''[[User:Bmy|Bob Yantosca]] wrote:'''''
| |
− |
| |
− | <blockquote>I think I may have stumbled on a bug in <code>GeosCore/ocean_mercury_mod.F</code>. In the routine <code>OCEAN_MERCURY_READ</code>, we have this code:</blockquote>
| |
− |
| |
− | !-------------------------------------------------
| |
− | ! River flow
| |
− | !-------------------------------------------------
| |
− | dFLOW1 = ( RIVERFLOW(THISMONTH) - RIVERFLOW(LASTMONTH) ) /
| |
− | & ( SEC_PER_DAY * DAYS_IN_LAST_MONTH )
| |
− | dFLOW2 = ( RIVERFLOW(NEXTMONTH) - RIVERFLOW(THISMONTH) ) /
| |
− | & ( SEC_PER_DAY * DAYS_IN_THIS_MONTH )
| |
− |
| |
− | ! Set FLOWNOW first time (jaf, 12/8/11)
| |
− | IF ( FIRST ) THEN
| |
− | <span style="color:red">!------------------------------------------------------------------------
| |
− | ! Prior to 10/5/16:
| |
− | ! This should probably be DFLOW1 (bmy, 10/5/16)
| |
− | ! FLOWNOW = RIVERFLOW(LASTMONTH) + dFLOW *
| |
− | !------------------------------------------------------------------------</span>
| |
− | FLOWNOW = RIVERFLOW(LASTMONTH) + <span style="color:green">dFLOW1</span> *
| |
− | & SEC_PER_DAY * ( DAYS_IN_LAST_MONTH - 15 )
| |
− | FIRST = .FALSE.
| |
− | ENDIF
| |
− |
| |
− | <blockquote>So on the first call I think what happens is that <code>DFLOW</code> is undefined—it has a junk value—when it enters the <code>OCEAN_MERCURY_READ</code> routine for the first time. This caused a floating point exception when I tried to compile with the GNU Fortran compiler.</blockquote>
| |
− |
| |
− | <blockquote>I think the fix is simple, to replace <code>DFLOW</code> with <code>DFLOW1</code> if it’s the first call, but I wanted to doublecheck with you first.</blockquote>
| |
− |
| |
− | '''''[[User:Jaf|Jenny Fisher]] replied:'''''
| |
− |
| |
− | <blockquote>That seems correct. This was part of a slew of updates to Hg where we had some issues with conflicting merges. I think the prior version just had <code>dFLOW</code> not <code>dFLOW1</code> and <code>dFLOW2</code>, so that’s probably what went wrong. Looking at my archived versions, this change seems to have happened somewhere between v11-01c and v11-01f.</blockquote>
| |
− |
| |
− | --[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 22:13, 5 October 2016 (UTC)
| |
− |
| |
− | ==== Now call DO_RED_INPLUME after the HEMCO configuration file is read ====
| |
− |
| |
− | <span style="color:green">'''''This fix was included in [[GEOS-Chem v11-01 benchmark history#v11-01j|v11-01j]] and approved on 03 Dec 2016'''''</span>
| |
− |
| |
− | '''Jaegun Jung''' (Ramboll Environ) reported an error in the mercury simulation. When the in-plume reduction option (i.e. the <code>LRED_INPLUME</code> setting in the HEMCO configuration file) is turned on, GEOS-Chem dies with the following error:
| |
− |
| |
− | ===============================================================================
| |
− | TPCORE_FVDAS (based on GMI) Tracer Transport Module successfully initialized
| |
− | ===============================================================================
| |
− | ===============================================================================
| |
− | M E R C U R Y E M I S S I O N S
| |
− |
| |
− | Total Anthro Hg(0) : 1.748 [Gg/yr]
| |
− | Total Re-Emitted Hg(0) : 0.000 [Gg/yr]
| |
− | Total Natural Hg(0) : 0.250 [Gg/yr]
| |
− | Total Anthro Hg(II) : 0.279 [Gg/yr]
| |
− | Total Anthro HgP : 0.000 [Gg/yr]
| |
− | ===============================================================================
| |
− | ===============================================================================
| |
− | GEOS-CHEM ERROR: Cannot get pointer to CFPP_NEI2005_Hg2!
| |
− | STOP at DO_RED_INPLUME (mercury_mod.F)
| |
− | ===============================================================================
| |
− | - CLEANUP: deallocating arrays now...
| |
− |
| |
− | The in-plume reduction option is activated by setting the <code>LRED_INPLUME</code> option in the HEMCO configuration file to <code>true</code>. This in turn will call subroutine <code>DO_RED_INPLUME</code> (in module <code>GeosCore/mercury_mod.F</code>) in order to perform the in-plume reduction calculation. But because <code>DO_RED_INPLUME</code> is called from routine <code>INIT_MERCURY</code>—before the HEMCO configuration file is read from disk—GEOS-Chem dies with the above error. The error does not happen if <code>LRED_INPLUME</code> is set to <code>false</code> (which is the default setting), or if it is omitted from the HEMCO configuration file.
| |
− |
| |
− | The fix is to move the call to <code>DO_RED_INPLUME</code> from <code>INIT_MERCURY</code> to routine <code>SET_OPTIONS_FROM_HEMCO</code>, which is called on the first Hg chemistry timestep, after the HEMCO configuration file is read. This eliminates the error.
| |
− |
| |
− | --[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 17:25, 12 October 2016 (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 ===
| |
− |
| |
− | '''''[[User:Bmy|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 <code>LDYNOCEAN = F</code>, then you are not archiving wet-deposited Hg2 and HgP into the proper arrays. In <code>GeosCore/convection_mod.F</code> and <code>GeosCore/wetscav_mod.F</code> 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 <code>LDYNOCEAN =F</code> then this IF block never gets done. This means that if you compare the <code>SNOW_HG</code> variable between 2 runs (one with <code>LDYNOCEAN=T</code> and one with <code>LDYNOCEAN=F</code>), then you will get dramatically different values of <code>SNOW_HG</code> between the 2 runs. The run with <code>LDYNOCEAN=F</code> 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 <code>LDYNOCEAN</code> was required to be <code>=T</code> (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 <code>LDYNOCEAN=T</code> condition is no longer necessary.
| |
− |
| |
− |
| |
− | :(2) In routine <code>SNOWPACK_MERCURY_FLUX</code> (in <code>GeosCore/land_mercury_mod.F</code>), the <code>K_EMIT</code> 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 <code>SRCHg0</code> (in GeosCore/mercury_mod.F), I noticed that we were zeroing out whole arrays on each <code>(I,J)</code> 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
| |
− |
| |
− | --[[User:Bmy|Bob Y.]] ([[User talk:Bmy|talk]]) 20:11, 11 June 2015 (UTC)
| |
− |
| |
− | === Bugs in MERRA wet deposition ===
| |
− |
| |
− | Carey Friedman originally reported bugs in the calculation of <code>WETLOSS</code> in <code>DO_MERRA_CONVECTION</code> and <code>DO_WASHOUT_ONLY</code> that caused mass of scavenged tracer passed to <code>depo_mercury_mod.F</code> to differ from the mass that is archived in the wet deposition diagnostics (ND38 and ND39). Carey's fixes were implemented in [[GEOS-Chem v10-01#v10-01g|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#Fixes and updates added during the public comment period|GEOS-Chem v10-01 public release]]. For more information, please see [[Wet deposition#Bugs in MERRA wet deposition|this post on our ''Wet deposition'' wiki page]].
| |
− |
| |
− | --[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|talk]]) 15:58, 21 May 2015 (UTC)
| |
− |
| |
− | === Remove array temporaries in routine READ_HG2_PARTITIONING ===
| |
− |
| |
− | <span style="color:green">'''''These updates were validated in the 1-month benchmark simulation [[GEOS-Chem v10-01 benchmark history#v10-01c|v10-01c]] and approved on 29 May 2014.'''''</span>
| |
− |
| |
− | The [[GEOS-Chem Unit Tester]] revealed the presence of [[Passing array arguments efficiently in GEOS-Chem|array temporaries]] in routine <code>READ_HG2_PARTITIONING</code>, located in module <code>GeosCore/ocean_mercury_mod.F</code>. We made the following modifications in order to eliminate these array temporaries.
| |
− |
| |
− | (1) Declare array <code>ARRAYtemp</code> 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 <code>ARRAYtemp</code> before passing to routine <code>TRANSFER_3D_TROP</code>, 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 )
| |
− |
| |
− | --[[User:Bmy|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 [[GEOS-Chem_v9-02_benchmark_history#v9-02c|v9-02c]] and contains the following items:
| |
− |
| |
− | '''''[mailto:yanxuz@atmos.washington.edu 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 <code>LNEI2005</code> 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 <code>LInPlume</code> 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 (<code>LWC</code>) by dividing it by cloud cover:
| |
− | LWC = SAFE_DIV( LWC, FC, 0d0 )
| |
− | ::After calculating the fraction of HgII in aqueous phase (<code>FA</code>), the <code>FA</code> is multiplied by cloud cover:
| |
− | IF ( LGEOSLWC ) FA = FA * FC
| |
− | ::This implementation was firstly introduced by lzh, jaf and bmy.
| |
− | ::The <code>K_RED_JNO2</code> 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 <code>global_o3_mod.F, mercury_mod.F</code> and <code>ocean_mercury_mod.F</code>.
| |
− |
| |
− | :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
| |
− |
| |
− | --[[User:Melissa Payer|Melissa Payer]] 11:27, 13 December 2011 (EST)
| |
− |
| |
− | === Streets future Hg emissions ===
| |
− |
| |
− | <span style="color:green">'''''This update was tested in the 1-month benchmark simulation [[GEOS-Chem_v9-02_benchmark_history#v9-02c|v9-02c]] and approved on 29 Nov 2012.'''''</span>
| |
− |
| |
− | 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 [http://acmg.seas.harvard.edu/publications/corbitt2011.pdf Corbitt et al. 2011].
| |
− |
| |
− | --[[User:Melissa Payer|Melissa Payer]] 16:33, 27 November 2012 (EST)
| |
− |
| |
− | === Updated Hg(0) oxidation kinetics ===
| |
− |
| |
− | <span style="color:green">'''''This update was tested in the 1-month benchmark simulation [[GEOS-Chem_v9-02_benchmark_history#v9-02c|v9-02c]] and approved on 29 Nov 2012.'''''</span>
| |
− |
| |
− | Hg(0) + Br rate constants have been updated to use the Goodsite et al. 2012 corrected values. The new rates are denoted as <code>GoodsiteUpdate</code> in subroutine GET_HGBR_RATE (mercury_mod.F).
| |
− |
| |
− | --[[User:Melissa Payer|Melissa Payer]] 16:33, 27 November 2012 (EST)
| |
− |
| |
− | === Capability to use GEOS-Chem Br/BrO fields in Hg simulation ===
| |
− |
| |
− | <span style="color:green">'''''This update was tested in the 1-month benchmark simulation [[GEOS-Chem_v9-02_benchmark_history#v9-02c|v9-02c]] and approved on 29 Nov 2012.'''''</span>
| |
− |
| |
− | The mercury simulation has been updated to use Br and BrO mixing ratios from GEOS-Chem using the [[Bromine_chemistry_mechanism|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 <code>LGCBROMINE</code> switch in subroutine INIT_MERCURY (mercury_mod.F).
| |
− |
| |
− | --[[User:Melissa Payer|Melissa Payer]] 16:33, 27 November 2012 (EST)
| |
− |
| |
− | ==== Bug in original BrOx.GC.2x25 file ====
| |
− |
| |
− | '''<span style="color:red">A corrected <code>BrOx.GC.geos5.2x25</code> file was made available on 21 Oct 2013. Users of [[GEOS-Chem v9-02]] should download this version of the file.</span>'''
| |
− |
| |
− | '''''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 <code>BrOx.GC.geos5.2x25</code> file in <code>GEOS_2x2.5/mercury_201007/</code> 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
| |
− |
| |
− | --[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|talk]]) 14:21, 24 August 2015 (UTC)
| |
− |
| |
− | === Bug fixes for nested Hg simulation ===
| |
− |
| |
− | <span style="color:green">'''''This update was tested in the 1-month benchmark simulation [[GEOS-Chem_v9-02_benchmark_history#v9-02f|v9-02f]] and approved on 07 Feb 2013.'''''</span>
| |
− |
| |
− | '''''Yanxu Zhang wrote:'''''
| |
− |
| |
− | :Several bugs in the code:
| |
− | :1. <code>input_mod.F</code>: 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. <code>land_mercury_mod.F</code>: 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. <code>mercury_mod.F</code>: 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. <code>ocean_mercury_mod.F</code>: 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
| |
− |
| |
− | --[[User:Melissa Payer|Melissa Payer]] 09:29, 1 February 2013 (EST)
| |
− |
| |
− | === Bug in tagged Hg emissions in v9-02 ===
| |
− |
| |
− | <span style="color:green">'''''This issue was resolved when the [[HEMCO|HEMCO emissions component]] was implemented into [[GEOS-Chem v10-01]].'''''</span>
| |
− |
| |
− | '''''[[User:Carey_Friedman|Carey Friedman]] wrote:'''''
| |
− |
| |
− | :In the <code>mercury_mod.F</code> file, in the <code>MERCURY_READYR</code> 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 <code>DO_REGRID_A2A</code> 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 <code>OUTGRID</code> argument in all calls to <code>DO_REGRID_A2A</code> 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(:,:)
| |
− | <b>CALL DO_REGRID_A2A( LLFILENAME, I1x1, J1x1-1,
| |
− | & INGRID, EHg0_usa, IS_MASS=1,
| |
− | & netCDF=.TRUE. )</b>
| |
− |
| |
− | ! 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. )
| |
− |
| |
− | --[[User:Melissa Payer|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 ===
| |
− |
| |
− | <span style="color:green">'''''This update was tested in the 1-month benchmark simulation [[GEOS-Chem_v9-02_benchmark_history#v9-02k|v9-02k]] and approved on 07 Jun 2013.'''''</span>
| |
− |
| |
− | 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 [[Using_Git_with_GEOS-Chem#Checking_the_validity_of_a_patch_file|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).
| |
− |
| |
− | --[[User:Chris Holmes|Chris Holmes]] 16:14, 9 April 2013 (EDT)
| |
− |
| |
− | === Hg(II) gas-particle partitioning ===
| |
− |
| |
− | <span style="color:green">'''''This update was tested in the 1-month benchmark simulation [[GEOS-Chem_v9-01-03_benchmark_history#v9-01-03h|v9-01-03h]] and approved on 09 Mar 2012.'''''</span>
| |
− |
| |
− | This update will be included in [[GEOS-Chem v9-01-03|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).
| |
− |
| |
− | -- [[User:Helen Amos|Helen Amos]] 18:11 25 January 2012 (EST)
| |
− |
| |
− | === Bug fix for reading Hg emissions ===
| |
− |
| |
− | <span style="color:green">'''''This update was tested in the 1-month benchmark simulation [[GEOS-Chem_v9-01-03_benchmark_history#v9-01-03g|v9-01-03g]] and approved on 27 Feb 2012.'''''</span>
| |
− |
| |
− | <span style="color:red">'''''This update has been rendered obsolete by the inclusion of the [[HEMCO|HEMCO emissions component]] into [[GEOS-Chem v10-01]] and later versions. HEMCO now reads emissions from netCDF files.'''''</span>
| |
− |
| |
− | Jenny Fisher discovered that anthropogenic mercury emission files on the generic 1°x1° grid (360x180) were being read as GEOS 1°x1° (360x181) files.
| |
− |
| |
− | '''''[mailto:jafisher@fas.harvard.edu 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]].
| |
− |
| |
− | --[[User:Melissa Payer|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.
| |
− |
| |
− | --[[User:Bmy|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. [http://wiki.seas.harvard.edu/geos-chem/index.php/Image:IPR_20130513.pdf Download the IPR document here.] (PDF)
| |
− |
| |
− | --[[User:Helen Amos|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 ===
| |
− |
| |
− | <span style="color:green">'''''This update was tested in the 1-month benchmark simulation [[GEOS-Chem_v9-01-02_benchmark_history#v9-01-02e|v9-01-02e]] and approved on 01 Aug 2011.'''''</span>
| |
− |
| |
− | <span style="color:red">'''''This update has been rendered obsolete by the inclusion of the [[HEMCO|HEMCO emissions component]] into [[GEOS-Chem v10-01]] and later versions. The file <code>global_br_mod.F</code> was removed from GEOS-Chem v10-01.'''''</span>
| |
− |
| |
− | A typo was discovered in the source code file <code>global_br_mod.f</code>.
| |
− |
| |
− | '''''[mailto:cdholmes@uci.edu Chris Holmes] wrote:'''''
| |
− |
| |
− | :The variable <code>BR_DIR</code> 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 <code>DATA_DIR</code> variable (in <code>directory_mod.f</code>), analogous to the way most other directories are found. This should make the code run more easily on systems outside Harvard.
| |
− |
| |
− | --[[User:Bmy|Bob Y.]] 11:35, 25 July 2011 (EDT)
| |
− |
| |
− | === Negative aquatic mercury concentrations ===
| |
− |
| |
− | <span style="color:green">'''''This update was tested in the 1-month benchmark simulation [[GEOS-Chem_v9-01-02_benchmark_history#v9-01-02e|v9-01-02e]] and approved on 01 Aug 2011.'''''</span>
| |
− |
| |
− | There was a bug in <code>ocean_mercury_mod.f</code> 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 ===
| |
− |
| |
− | <span style="color:green">'''''This update was tested in the 1-month benchmark simulation [[GEOS-Chem_v9-01-02_benchmark_history#v9-01-02p|v9-01-02p]] and approved on 29 Sep 2011.'''''</span>
| |
− |
| |
− | There is a div by 0 error in mercury_mod.f <code>FUNCTION GET_BR</code> that affects [[GEOS-Chem v8-03-02|v8-03-02]] and [[GEOS-Chem v9-01-01|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 <code>TTDAY</code> is 0, so <code>BR_FAC</code> becomes <code>Inf</code> and <code>C_BR</code> becomes <code>Inf</code>. The problem trickles down and shows up as <code>PL-HG2-$</code> diagnostics <code>Hg2_OH</code>, <code>Hg2_O3</code>, <code>Hg2_BR</code>, and <code>Br</code> diagnostics having <code>NaNs</code> 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]].
| |
− |
| |
− | --[[User:hamos|hamos]] 10:46, 9 March 2011 (EST)<br>
| |
− | --[[User:Bmy|Bob Y.]] 11:35, 25 July 2011 (EDT)
| |
− |
| |
− | === Bug fixes for ND03 mercury diagnostics ===
| |
− |
| |
− | <span style="color:green">'''''This update was tested in the 1-month benchmark simulation [[GEOS-Chem_v9-01-02_benchmark_history#v9-01-02p|v9-01-02p]] and approved on 29 Sep 2011.'''''</span>
| |
− |
| |
− | Chris Holmes found and fixed several issues with the ND03 diagnostic (which only affects the [[Mercury|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 <code>PL-HG2-$</code> diagnostics were not in the <code>ctm.bpch</code> file and the tracer names for these diagnostics were not in <code>tracerinfo.dat</code>. 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 <code>diag03_mod.f</code> to hopefully make it easier to maintain as diagnostics are added or changed in the future.
| |
− |
| |
− | :I confirmed that my changes to <code>diag03_mod.f</code> do not alter the diagnostic outputs, within expected <code>REAL*4</code> precision.
| |
− |
| |
− | :At the same time I was fixing the diagnostics, I found and corrected (with <code>SAFE_DIV</code>) a floating point overflow error in <code>mercury_mod.f</code> and removed legacy comments in <code>mercury_mod.f</code> that were left over from my personal debugging. I also corrected a diagnostic tracer name in <code>gamap_mod.f</code>, 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.
| |
− |
| |
− | --[[User:Bmy|Bob Y.]] 11:35, 25 July 2011 (EDT)
| |
− |
| |
− | === VEGEMIS/GCAP bug fix ===
| |
− |
| |
− | <span style="color:green">'''''This update was tested in the 1-month benchmark simulation [[GEOS-Chem_v9-01-02_benchmark_history#v9-01-02e|v9-01-02e]] and approved on 01 Aug 2011.'''''</span>
| |
− |
| |
− | 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)<br>
| |
− | --[[User:Bmy|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
| |
− |
| |
− | '''''[mailto:jafisher@fas.harvard.edu 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)<br>
| |
− | --[[User:Bmy|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):
| |
− | <ol><li>Reduce geogenic emissions by 50%
| |
− | * ref. Soerensen et al. 2010
| |
− | * mercury_mod.f line 3470:
| |
− | '''EHg0_nt = EHg0_nt / SEC_PER_YR''' <br>
| |
− | '''EHg0_nt = EHg0_nt * 0.5D0''' <br></li>
| |
− | <li>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'''<br>
| |
− | '''REAL*8, PARAMETER :: BBRatio_Hg_CO = 1.05D-7'''</li>
| |
− | <li>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 /)'''<br>
| |
− | '''CDEEPSAT = (/ 0.8d-10, 4.1d-10, 4.1d-10 /)'''</li>
| |
− | <li>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'''<br>
| |
− | '''REAL*8, PARAMETER :: BRO_POLAR=5D0'''</li>
| |
− | <li>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'''<br>
| |
− |   '''F_RAINOUT = F_PRIME'''<br>
| |
− |   '''! Washout occurs where there is no rainout'''<br>
| |
− |   '''F_WASHOUT = MAX( FTOP - F_RAINOUT, 0d0 )'''<br>
| |
− | '''ELSE'''<br>
| |
− |   '''F_RAINOUT = 0d0'''<br>
| |
− |   '''F_WASHOUT = 0d0'''<br>
| |
− | '''ENDIF'''<br>
| |
− | * comment out wetscav_mod.f line 4121:
| |
− | '''!F_RAINOUT = 0d0'''<br>
| |
− | '''!F_WASHOUT = 0d0'''<br>
| |
− | '''!IF ( PDOWN(L,I,J) > 0d0 ) THEN'''<br>
| |
− | '''!  IF (QQ(L,I,J) > 0d0) THEN'''<br>
| |
− | '''!   F_RAINOUT = MAX( FTOP, F_PRIME )'''<br>
| |
− | '''!  ENDIF'''<br>
| |
− | '''!  F_WASHOUT = MAX( FTOP - F_RAINOUT, 0d0 )'''<br>
| |
− | '''!ENDIF'''<br></li>
| |
− | </ol>
| |
− |
| |
− | <br>
| |
− |
| |
− | === Previous discussions (6/2008) ===
| |
− |
| |
− | #Standardize the solver. Everyone should use the solver Chris developed for the Hg chemistry <br>(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.''
| |
− | #Catalog all emissions options and develop clear flagging system to choose your own adventure. This will include:<ul><li> different anthropogenic emissions scenarios/corrections (i.e Jaffe vs. Streets) <- going to work on the anthro emissions soon (eds), <br><li>different land emissions. <- nvd will work on this</ul>
| |
− | #*''Logicals implemented to select anthropogenic emissions from GEIA 2000, GEIA 2005, or GEIA scaled to Streets et al. 2006 regional totals.''
| |
− | #Diagnostics. See separate section below.
| |
− | #*''Diagnostics have been updated.''
| |
− | #''Comment everything'' in the code. Remove old bits of code that are hanging around & commented out.
| |
− | #*''Ongoing.''
| |
− | #GEOS-5
| |
− | #*''This is the standard meteorology to use at present. [[MERRA]] is in development.''
| |
− | #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 == | | == Benchmarking == |
Line 1,417: |
Line 39: |
| !width="600px"|Notes | | !width="600px"|Notes |
| |- | | |- |
− | |[[Mercury#Hg.28II.29_gas-particle_partitioning|Hg(II) gas-particle partitioning]]
| + | |Hg(II) gas-particle partitioning |
| |Science | | |Science |
| |Helen Amos (Harvard) | | |Helen Amos (Harvard) |
Line 1,429: |
Line 51: |
| | | | | |
| '''Updates introduced in [[GEOS-Chem_v9-02_benchmark_history#v9-02c|v9-02c]]:''' | | '''Updates introduced in [[GEOS-Chem_v9-02_benchmark_history#v9-02c|v9-02c]]:''' |
− | *[[Mercury#Nested-grid_Hg_simulation_over_North_America|Nested grid simulation over North America]] | + | *Nested grid simulation over North America |
− | *[[EPA/NEI05_North_American_emissions|EPA/NEI05 North American Hg emissions]] | + | *EPA/NEI05 North American Hg emissions |
− | *[[Mercury#Updated_Hg.280.29_oxidation_kinetics|Updated Hg(0) oxidation kinetics]] | + | *Updated Hg(0) oxidation kinetics |
− | *[[Mercury#Capability_to_use_GEOS-Chem_Br.2FBrO_fields_in_Hg_simulation|Capability to use GEOS-Chem Br/BrO fields in Hg simulation]] | + | *Capability to use GEOS-Chem Br/BrO fields in Hg simulation |
− | *[[Mercury#Streets_future_Hg_emissions|Streets future Hg emissions]] | + | *Streets future Hg emissions |
| |Science | | |Science |
| |Yanxu Zhang (UW) | | |Yanxu Zhang (UW) |
Line 1,455: |
Line 77: |
| | | | | |
| '''Updates introduced in [[GEOS-Chem_v9-02_benchmark_history#v9-02k|v9-02k]]:''' | | '''Updates introduced in [[GEOS-Chem_v9-02_benchmark_history#v9-02k|v9-02k]]:''' |
− | *[[Mercury#GAMAP_can.27t_read_v9-01-03_output_for_Hg|Streamlining of the code in GeosCore/mercury_mod.F]], includes: | + | *Streamlining of the code in GeosCore/mercury_mod.F, includes: |
| **Replace Hg2 and HgP with Hg2g and Hg2p | | **Replace Hg2 and HgP with Hg2g and Hg2p |
| **Update mercury chemistry to Runge-Kutta method | | **Update mercury chemistry to Runge-Kutta method |
Line 1,471: |
Line 93: |
| | | | | |
| '''Updates introduced in [[GEOS-Chem v11-01#v11-01c|v11-01c]]:''' | | '''Updates introduced in [[GEOS-Chem v11-01#v11-01c|v11-01c]]:''' |
− | *[[Mercury#Hg ocean MLD bug fixes|Hg Ocean MLD bug fixes]] | + | *Hg Ocean MLD bug fixes |
− | *[[Mercury#Updates_to_Arctic_Hg_processes|Hg Arctic process updates]] | + | *Hg Arctic process updates |
− | *[[Mercury#Hg emission updates|Hg emission updates (NEI2011, NPRI2011, UNEP2010 with adjustments for and emission controls)]] | + | *Hg emission updates (NEI2011, NPRI2011, UNEP2010 with adjustments for and emission controls) |
| '''Updates introduced in [[GEOS-Chem v11-01#v11-01e|v11-01e]]:''' | | '''Updates introduced in [[GEOS-Chem v11-01#v11-01e|v11-01e]]:''' |
− | *[[Mercury#Bug_Fixes_to_v11-01c_Hg_Updates|Bug fixes to v11-01c Hg updates]] | + | *Bug fixes to v11-01c Hg updates |
| |Science | | |Science |
| |Jenny Fisher (Wollongong) | | |Jenny Fisher (Wollongong) |
Line 1,484: |
Line 106: |
| | | |
| |} | | |} |
− |
| |
− | --[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|talk]]) 21:51, 1 February 2017 (UTC)
| |
| | | |
| == Benchmark results for the nested NA grid == | | == Benchmark results for the nested NA grid == |
Line 1,503: |
Line 123: |
| | | | | |
| '''Updates introduced in [[GEOS-Chem_v9-02_benchmark_history#v9-02c|v9-02c]]:''' | | '''Updates introduced in [[GEOS-Chem_v9-02_benchmark_history#v9-02c|v9-02c]]:''' |
− | *[[Mercury#Nested-grid_Hg_simulation_over_North_America|Nested grid simulation over North America]] | + | *Nested grid simulation over North America |
− | *[[EPA/NEI05_North_American_emissions|EPA/NEI05 North American Hg emissions]] | + | *EPA/NEI05 North American Hg emissions |
− | *[[Mercury#Updated_Hg.280.29_oxidation_kinetics|Updated Hg(0) oxidation kinetics]] | + | *Updated Hg(0) oxidation kinetics |
− | *[[Mercury#Capability_to_use_GEOS-Chem_Br.2FBrO_fields_in_Hg_simulation|Capability to use GEOS-Chem Br/BrO fields in Hg simulation]] | + | *Capability to use GEOS-Chem Br/BrO fields in Hg simulation |
− | *[[Mercury#Streets_future_Hg_emissions|Streets future Hg emissions]] | + | *Streets future Hg emissions |
| |Science | | |Science |
| |Yanxu Zhang (UW) | | |Yanxu Zhang (UW) |
Line 1,517: |
Line 137: |
| For more information on the nested grid Hg simulation, please see Zhang et al. (2012, ACP). | | For more information on the nested grid Hg simulation, please see Zhang et al. (2012, ACP). |
| |} | | |} |
− | --[[User:Melissa Payer|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 [[GEOS-Chem v9-01-02|v9-01-02]]. For more information see the [[Dry deposition#Aerosol dry deposition velocities over snow and ice surfaces|dry deposition]] page. (Jenny Fisher, Harvard).
| |
− |
| |
− | === Previous discussions ===
| |
− |
| |
− | #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)
| |
− | #Snow/ice scavenging of HgII
| |
− | #*Cold-temperature wet scavenging of HgII is now included in the standard code.
| |
− | #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 ===
| |
− | #Helen Amos is developing diagnostics for reactive gaseous mercury and reactive particulate mercury.
| |
− | #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:
| |
− | # 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.
| |
− | # 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.
| |
− | # 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.
| |
− | # '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 == | | == GTMM == |
| | | |
− | <span style="color:red">'''''The many changes made to [[GEOS-Chem v10-01|v10-01]] and [[GEOS-Chem v11-01|v11-01]] have broken the GTMM simulations. Also, the original developers of the GTMM simulation have left the GEOS-Chem community. If you are interested in using this simulation, please contact the [[Hg and POPs Working Group]].'''''</span> | + | <span style="color:red">'''''GTMM has not been supported since [[GEOS-Chem v10-01]]. If you are interested in using this simulation, please contact the [[Hg and POPs Working Group]].'''''</span> |
| | | |
| [[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. | | [[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. |
Line 1,682: |
Line 213: |
| | | |
| -- Jenny Fisher, 19 Mar 2016 | | -- Jenny Fisher, 19 Mar 2016 |
− |
| |
− | == 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.
| |
− |
| |
− | --[[User:hamos|Helen Amos]] 12:06, 06 Oct 2011 (EST)<br>
| |
− | --[[User:Bmy|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.
| |
− |
| |
− | --[[User:hamos|Helen Amos]] 15:20, 02 Jun 2015 (EST)
| |
| | | |
| == References == | | == References == |
Line 1,724: |
Line 233: |
| #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'', <u>Atm. Chem. Phys. Discuss.</u>, '''11''', 19395-19442, 2011. | | #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'', <u>Atm. Chem. Phys. Discuss.</u>, '''11''', 19395-19442, 2011. |
| #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'', <u>Atmos. Chem. Physics</u>, 12, 6095-6011, 2012. | | #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'', <u>Atmos. Chem. Physics</u>, 12, 6095-6011, 2012. |
− |
| |
− | --[[User:Melissa Payer|Melissa Payer]] 11:41, 11 January 2013 (EST)
| |
− |
| |
| | | |
| ---- | | ---- |
− | '''''[[CO2 simulation|Previous]] | [[POPs simulation|Next]] | [[Guide to GEOS-Chem simulations]]''''' | + | '''''[[CO2 simulation|Previous]] | [[Metals simulation|Next]] | [[Guide to GEOS-Chem simulations]]''''' |
On this page we include information for users of 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.
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".
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.
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.
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.
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:
GCST and/or Team Hg to provide HEMCO-ready uniform soil distribution files - for now contact jennyf@uow.edu.au if you want one.