HEMCO versions

From Geos-chem
Revision as of 19:10, 12 January 2015 by Bmy (Talk | contribs) (New page: HEMCO has been added to GEOS-Chem v10-01e, which is currently undergoing benchmarking and validation. It will be included in the GEOS-Chem v10-01...)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

HEMCO has been added to GEOS-Chem v10-01e, which is currently undergoing benchmarking and validation. It will be included in the GEOS-Chem v10-01 public release, slated for early 2015.

--Melissa Sulprizio 13:49, 20 November 2014 (EST)

Status of GEOS-Chem simulations

The following table provides information on the status of connecting GEOS-Chem simulations with HEMCO.

Simulation Status Version added
Full-chemistry Fully compatible with HEMCO v10-01e
SOA Fully compatible with HEMCO v10-01e
Aerosol-only simulation Fully compatible with HEMCO v10-01e
CH4 simulation Fully compatible with HEMCO v10-01e
CO2 simulation Fully compatible with HEMCO v10-01e
POPs simulation Fully compatible with HEMCO v10-01e
Rn-Pb-Be simulation Fully compatible with HEMCO v10-01e
Tagged O3 simulation Fully compatible with HEMCO v10-01e
Tagged CO simulation Partially integrated TBD
Hg simulation Partially integrated TBD
TOMAS aerosol microphysics Partially integrated TBD
APM aerosol microphysics Need to be completely re-integrated TBD

--Melissa Sulprizio 13:49, 20 November 2014 (EST)

HEMCO updates

Now treat OCPI, OCPO, BCPI, and BCPO separately in HEMCO

The original implementation of HEMCO in GEOS-Chem treated carbon aerosols as black carbon (BC) and organic carbon (OC). The speciation into hydrophillic and hydrophobic carbon was done when passing HEMCO emissions to GEOS-Chem. Plots from 1-month benchmark v10-01e revealed large differences in OCPO and OCPI. To resolve these differences, we revert to splitting OC and BC into OCPI, OCPO, BCPI, and BCPO.

Comments from 1-month benchmark v10-01e:

Jeff Pierce wrote:

The HEMCO emissions should be essentially the same as the previous emissions, right? I'm curious as to why the OCPO (hydrophobic OC aerosol from combustion sources) increased so much (see the ratios). There is more than a doubling in many high-OCPO regions.
Even odder to me, OCPO has a fixed "aging" time to OCPI (hydrophilic), but the OCPI trends don't match up (as they should if transport/deposition/aging are held fixed between the two simulations). In some ways, it looks like the aging changed, but I think it's supposed to be fixed at 1.2 days.

Christoph Keller responded:

HEMCO simply includes OC and BC, and the partitioning into hydrophilic and hydrophobic parts is done outside of HEMCO. This way, the fractions (0.5/0.5 for OC and 0.8/0.2 for BC) only need to be defined and applied at one place in the code. In v10-01d, biogenic emissions (and also AEIC aircraft emissions) were just emitted as OCPI, whereas those now become separated into OCPI and OCPO. This explains the increase in OCPO and the simultaneous decrease in OCPI.
If there are concerns about this procedure, we can change the code so that HEMCO explicitly includes OCPI, OCPO, BCPI, and BCPO.

Christoph Keller wrote:

The old code included a biogenic contribution, calculated from the MEGAN terpene emissions (assuming an OC yield of 0.1). These emissions were attributed to OCPI only. In the new version, they are split into OCPI and OCPO. That’s just the way it's implemented. If there is a good (scientific) reason to change it, it can be done quite easily.

Jeff Pierce responded:

Right, this 0.1*monoterpenes is to represent biogenic SOA. It should be considered all hydrophilic organic carbon since SOA has a hygroscopicity (kappa) of around 0.1-0.2 while the hydrophobic OC has kappas much closer to zero. This should be reverted back to being all OCIL as it was before.

--Melissa Sulprizio 13:49, 20 November 2014 (EST)

Features added prior to the v10-01e 1-year benchmark

We added these updates to HEMCO in order to correct issues identified by the v10-01e 1-month benchmark. These updates are present in the v10-01e 1-year benchmark and in all higher versions, but not in the v10-01e 1-month benchmark.

(1) Fix for how alkalinity is computed:

Christoph Keller wrote:

The alkalinity (and number density) are still directly obtained from the SSA emission flux. The problem is that in any given grid box, the alkalinity (in kg) at a given level is set to the total SSA flux for that grid box, e.g.
   ALK(I,J,L) = SSA(I,J) * AREA(I,J) * EMIS_TS
So the total column alkalinity for any given I,J location is much higher than the total SSA emissions at this location. I think it should be:
   ALK(I,J,L) = FRAC_OF_PBL(I,J,L) * SSA(I,J) * AREA(I,J) * EMIS_TS
where FRAC_OF_PBL(I,J,L) makes sure that the total emitted SSA are distributed uniformly within the PBL.
This fix will affect the concentrations of SO4s and NITs.

(2) Fixes in the HEMCO PARANOX module:

Christoph Keller wrote:

I found the problem with PARANOx: I didn’t take into account the molecular weights when converting NO fluxes to HNO3 and O3. This resulted in very large differences in O3 and HNO3 w/r/t prior versions. I also a added more thorough division-by-zero check when calculating the ozone dry deposition rate from PARANOX.

(3) Now treat OCPI, OCPO, BCPI, and BCPO separately in HEMCO .

(4) Fixes for the BIOGENIC_OCPI diagnostic. This diagnostic was not being computed properly in the v10-01e 1-month benchmark and returned all zeroes. This has now been corrected. However, this diagnostic is disabled in all SOA simulations (it will return all zeros).

--Bob Y. 15:41, 8 January 2015 (EST)

Features added in v10-01f

Christoph Keller wrote:

The main updates since the v10-01e 1-year benchmark are:
  1. Strat Bry fields that are now read through HEMCO. Br2 concentrations are obtained from BrCl data by preserving Br, e.g. by dividing molecular BrCl by a factor of 2. This is different to the old code, where 1 mol BrCl lead to 1 mol Br2.
  2. HEMCO can now map between native and reduced GEOS grids. For now, this only works within the same model version, e.g. native GEOS-5 onto reduced GEOS-5. I’m about to bring in some additional code that allows us to remap GEOS-5 fields onto GEOS-4 levels.
All other changes are mostly low-level stuff or added functionality that shouldn’t really affect the benchmarks. These are:
  1. The HEMCO MEGAN extension is now in flexible precision.
  2. The historical meteorological data (10-day temperature averages, previous day's LAI, etc.) used in MEGAN can now be read from restart instead of doing a ‘cold’ start.
  3. Masks can now be applied to individual scale factors, e.g. it is possible to enable a scale factor only over a particular region. This was implemented upon request of a number of people, but is currently not used in any of the (benchmark) simulations.
  4. The PARANOx look-up-tables can now be provided in ASCII format. This allows us to run PARANOx in GEOS-5 without having to deal with the netCDF input files and/or the little endian / big endian binary file issues.
  5. HEMCO can now read index-sorted data from an ASCII file and then map these data based on their indices onto the simulation grid. This allows us to define e.g. country-specific scale factors. This is currently not used in any of the benchmark simulations. More information about this option can be found in the HEMCO manual.

--Melissa Sulprizio 16:04, 7 January 2015 (EST)

Features added in v10-01g

(1) We have fixed a bug that caused a segmentation fault when emissions were turned off in the input.geos file.

The following updates to HEMCO were made in GEOS-Chem v10-01g:

Bob Yantosca wrote:

If you have these settings in input.geos:
   %%% EMISSIONS MENU %%%  :
   Turn on emissions?      : F
   Emiss timestep (min)    : 60
   HEMCO Input file        : HEMCO_Config.rc
   Etc..
Then you get a seg fault on the boldfaced line of code in GeosCore/hcoi_gc_main_mod.F90:
    !=================================================================
    ! GetHcoVal begins here
    !=================================================================

    ! Init
    FOUND = .FALSE.
    IF ( PRESENT(Emis) ) Emis = 0.0_hp
    IF ( PRESENT(Dep ) ) Dep  = 0.0_hp

    ! Define tracer ID to be used. This is only different from the
    ! passed tracer ID if some species mapping occurs at this level.
    tID = TrcID

    ! HEMCO species ID corresponding to this GEOS-Chem tracer
    IF ( tID > 0 ) HcoID = M2HID(tID)%ID ID
The issue is that if you turn off HEMCO, then M2HID pointer never gets initialized.
Turning off emissions in v10-01f will also give us this error in the strat chem module:
   HEMCO ERROR: Container not found: GEOSCCM_Br2_DAY
   ERROR LOCATION: HCO_GetPtr_3D (hco_emislist_mod.F90)

   ===============================================================================
   GEOS-CHEM ERROR: Cannot get pointer from HEMCO! Stratospheric Bry data is 
   expected to be listed in the HEMCO configuration file and the GMI_StratChem
   extension must be enabled. This error occured when trying to get field 
   GEOSCCM_Br2_DAY STOP at Set_BryPointers (start_chem_mod.F90)
   ===============================================================================
        - CLEANUP: deallocating arrays now...
Which is probably to be expected now that HEMCO handles the strat Bry emissions.

Christoph Keller wrote:

I’ve updated my code so that HEMCO can be used with LEMIS = F. The changes are:
1. In main.F, the HEMCO routines are now always called, even if LEMIS is set to FALSE. This ensures that HEMCO can still be used to read non-emission data such as the stratospheric Bry fields.
2. In hcoi_gc_main_mod.F90, there are now two checks for the LEMIS flag: If LEMIS is disabled, no HEMCO species are defined in subroutine Get_nHcoSpc, and as a result HEMCO will not calculate any emissions. Similarly, all HEMCO extensions will be deactivated by forcing all extension numbers to invalid values (—> CALL SetExtNr(… ).
3. Because all extensions are now automatically ignored when LEMIS is set to FALSE, I recommend moving the Strat Bry fields from the extension section into the ‘regular’ base emissions section. This way, these fields are always considered. So you'll need to add the following lines to the end of the BASE EMISSIONS section in the HEMCO configuration file:
     # --- Stratospheric Bry data ---
     0 GEOSCCM_Br_DAY      $ROOT/HEMCO/STRAT/v2015-01/Bry/GEOSCCM_Bry.2007$MM.day.nc   BR     2007/$MM/1/0 C xyz pptv * - 60 1
     0 GEOSCCM_Br2_DAY     $ROOT/HEMCO/STRAT/v2015-01/Bry/GEOSCCM_Bry.2007$MM.day.nc   BRCL   2007/$MM/1/0 C xyz pptv * - 60 1
     0 GEOSCCM_BrO_DAY     $ROOT/HEMCO/STRAT/v2015-01/Bry/GEOSCCM_Bry.2007$MM.day.nc   BRO    2007/$MM/1/0 C xyz pptv * - 60 1
     0 GEOSCCM_BrNO3_DAY   $ROOT/HEMCO/STRAT/v2015-01/Bry/GEOSCCM_Bry.2007$MM.day.nc   BRONO2 2007/$MM/1/0 C xyz pptv * - 60 1
     0 GEOSCCM_HBr_DAY     $ROOT/HEMCO/STRAT/v2015-01/Bry/GEOSCCM_Bry.2007$MM.day.nc   HBR    2007/$MM/1/0 C xyz pptv * - 60 1
     0 GEOSCCM_HOBr_DAY    $ROOT/HEMCO/STRAT/v2015-01/Bry/GEOSCCM_Bry.2007$MM.day.nc   HOBR   2007/$MM/1/0 C xyz pptv * - 60 1
     0 GEOSCCM_Br_NIGHT    $ROOT/HEMCO/STRAT/v2015-01/Bry/GEOSCCM_Bry.2007$MM.night.nc BR     2007/$MM/1/0 C xyz pptv * - 60 1
     0 GEOSCCM_Br2_NIGHT   $ROOT/HEMCO/STRAT/v2015-01/Bry/GEOSCCM_Bry.2007$MM.night.nc BRCL   2007/$MM/1/0 C xyz pptv * - 60 1
     0 GEOSCCM_BrO_NIGHT   $ROOT/HEMCO/STRAT/v2015-01/Bry/GEOSCCM_Bry.2007$MM.night.nc BRO    2007/$MM/1/0 C xyz pptv * - 60 1
     0 GEOSCCM_BrNO3_NIGHT $ROOT/HEMCO/STRAT/v2015-01/Bry/GEOSCCM_Bry.2007$MM.night.nc BRONO2 2007/$MM/1/0 C xyz pptv * - 60 1
     0 GEOSCCM_HBr_NIGHT   $ROOT/HEMCO/STRAT/v2015-01/Bry/GEOSCCM_Bry.2007$MM.night.nc HBR    2007/$MM/1/0 C xyz pptv * - 60 1
     0 GEOSCCM_HOBr_NIGHT  $ROOT/HEMCO/STRAT/v2015-01/Bry/GEOSCCM_Bry.2007$MM.night.nc HOBR   2007/$MM/1/0 C xyz pptv * - 60 1
 
     END SECTION BASE EMISSIONS

You should also remove the corresponding entries in the extensions section, including the extension toggle (GMI_StratChem) itself. If you prefer having the strat Bry fields listed in the extensions section, we can update the SetExtNr routine so that it doesn’t reset the extension number associated with GMI_StratChem. Just let me know if you’d prefer that solution.
4. With LEMIS set to FALSE, my code currently stops with an error because some of the emission diagnostics don’t work any more. I assume it’s expected that user disable the corresponding diagnostics in input.geos (which I didn’t), so I didn’t bother to account for that (e.g. in diag3.F, etc.).

--Bob Y. 14:08, 12 January 2015 (EST)