Difference between revisions of "MERRA implementation details"

From Geos-chem
Jump to: navigation, search
(Wet deposition and scavenging)
(GeosCore directory)
Line 70: Line 70:
 
The following modifications for MERRA were made in the <tt>GeosCore/</tt> directory:
 
The following modifications for MERRA were made in the <tt>GeosCore/</tt> directory:
  
 +
#acetone_mod.f
 +
#*OCEAN_SOURCE_ACET: Compute the ocean source of acetone for MERRA in the same way as for GEOS-5.  '''''(NOTE: We may need to eventually rescale this.)'''''
 
#convection_mod.f
 
#convection_mod.f
#*MERRA uses the same convection routine (NFCLDMX) as GEOS-5
+
#*DO_CONVECTION: Call the same convection routine (NFCLDMX) for MERRA as is done for GEOS-5
 
#dust_dead_mod.f
 
#dust_dead_mod.f
 
#*Assign parameter FLX_MSS_FDG_FCT = 4.9d-4 for both MERRA and GEOS-5.  '''''(NOTE: We may need to eventually rescale this.)'''''
 
#*Assign parameter FLX_MSS_FDG_FCT = 4.9d-4 for both MERRA and GEOS-5.  '''''(NOTE: We may need to eventually rescale this.)'''''
Line 108: Line 110:
 
#*Change instances of <tt>#if defined( GEOS_5 )</tt>&nbsp;&nbsp;&nbsp;to&nbsp;&nbsp;&nbsp;<tt>#if defined( GEOS_5 ) || defined( MERRA )</tt>
 
#*Change instances of <tt>#if defined( GEOS_5 )</tt>&nbsp;&nbsp;&nbsp;to&nbsp;&nbsp;&nbsp;<tt>#if defined( GEOS_5 ) || defined( MERRA )</tt>
  
--[[User:Bmy|Bob Y.]] 13:41, 16 August 2010 (EDT)
+
--[[User:Bmy|Bob Y.]] 15:08, 16 August 2010 (EDT)
  
 
== Outstanding issues ==
 
== Outstanding issues ==

Revision as of 19:08, 16 August 2010

NOTE: Page under construction!

On this page we list the necessary modifications to GEOS-Chem for MERRA compatibility.

Overview

The GMAO MERRA data product is a 30-year reanalysis done with the GEOS-5.2.0 assimilation system. Therefore, within GEOS-Chem we can (for the most part) treat MERRA in the same way as we do for the GEOS-5 meteorology.

However, in order to reduce the volume of data produced (and for other technical concerns), GMAO chose to reduce the vertical and/or horizontal resolution of some important MERRA data fields. Also, some MERRA data fields have different units than in the GEOS-5 product. Because of this, some additional special handling may be required within GEOS-Chem.

Key similarities

The following aspects of MERRA are identical to the GEOS-5 operational data product.

  1. The MERRA high-resolution grid (0.5° x 0.666°) is identical to that of GEOS-5.
  2. The MERRA vertical grid (72 hybrid levels) is identical to that of GEOS-5.

Key differences

The following aspects of MERRA differ from the GEOS-5 operational data product:

  1. The MERRA temporal resolution differs from GEOS-5 as follows:
    • Surface data: hourly averages (MERRA) vs. 3-hour averages (GEOS-5)
    • 3-D data: 3-hour averages (MERRA) vs. 6-hour averages (GEOS-5)
  2. Differences in individual MERRA met fields:
    • Most of the releveant MERRA 3-D data for GEOS-Chem are only available at 1° x 1.25° horizontal resolution.
    • OMEGA, PV, RH are 6-hr instantaneous data in MERRA but are 6-hr averaged data in GEOS-5
    • SNOMAS (snow mass) has units of kg/m2 in MERRA but mm in GEOS-5
    • Many of the precipitation fields (e.g. DQIDTMST, DQVDTMST, DQLDTMST, etc.) are saved on a 1.25° x 1.25° x 42 pressure levels instead of 72 hybrid levels. P -> hybrid interpolation is necessary.
    • The MERRA fields FRLAKE, FRLAND, FRLANDIC, FROCEAN, PHIS are time-invariant.

Required coding changes in GEOS-Chem

As noted in the section above, the similarities between GEOS-5 and MERRA (especially of the vertical grids) means that in most cases we can just treat MERRA in the same way as for GEOS-5. In many areas of the code, the coding changes are straightforward and simply involve an extension of C-preprocessor statements such as:

#if defined( GEOS_5 )

to

#if defined( GEOS_5 ) || defined( MERRA ) 

In other areas of GEOS-Chem the changes are more involved. Below we provide a description of the areas of GEOS-Chem that were modified for MERRA:

Headers directory

The following modifications for MERRA were made in the Headers/ directory:

  1. define.h
    • Add a new C-preprocessor switch named "MERRA".
  2. CMN_SIZE:
    • Added size parameters for MERRA 4 x 5 and MERRA 2 x 2.5 grids.

GeosUtil directory

The following modifications for MERRA were made in the GeosUtil/ directory:

  1. bpch2_mod.f
    • GET_MODELNAME: Add "MERRA_47L" and "MERRA" modelnames to the #if block
    • GET_NAME_EXT: Return grid name "geos5" for MERRA fields
  2. directory_mod.f
    • Added MERRA_DIR variable for MERRA met fields
  3. pressure_mod.f
    • GET_PRESSURE: Compute PEDGE for MERRA in the same way as for GEOS-5
    • INIT_PRESSURE: Initialize Ap and Bp for MERRA in the same way as for GEOS-5
  4. transfer_mod.f
    • Change instances of #if defined( GEOS_5 )   to   #if defined( GEOS_5 ) || defined( MERRA )

GeosCore directory

The following modifications for MERRA were made in the GeosCore/ directory:

  1. acetone_mod.f
    • OCEAN_SOURCE_ACET: Compute the ocean source of acetone for MERRA in the same way as for GEOS-5. (NOTE: We may need to eventually rescale this.)
  2. convection_mod.f
    • DO_CONVECTION: Call the same convection routine (NFCLDMX) for MERRA as is done for GEOS-5
  3. dust_dead_mod.f
    • Assign parameter FLX_MSS_FDG_FCT = 4.9d-4 for both MERRA and GEOS-5. (NOTE: We may need to eventually rescale this.)
  4. fast_j.f
    • Do cloud overlapping for MERRA the same way as for GEOS-5
  5. gamap_mod.f
    • INIT_TRACERINFO: Define units of CMFMC field w/ same units as GEOS-5
  6. global_ch4_mod.f
    • Change instances of #if defined( GEOS_5 )   to   #if defined( GEOS_5 ) || defined( MERRA )
  7. global_hno3_mod.f
    • Change instances of #if defined( GEOS_5 )   to   #if defined( GEOS_5 ) || defined( MERRA )
  8. global_o3_mod.f
    • Rewrote logic of #if block, now treat MERRA in the same way as GEOS-5
  9. input_mod.f
    • READ_SIMULATION_MENU: Read value for MERRA_DIR from input.geos file
  10. land_mercury_mod.f
    • Added #elif defined( MERRA ) section to all #if blocks. For now, treat MERRA in the same way as for GEOS-5.
  11. lightning_nox_mod.f
    • LIGHTNING: Eliminate the shallow-cloud inhibititon trap for MERRA, as we already do for GEOS-5
    • GET_OTD_LIS_SCALE: Compute ANN_AVG_FLASHRATE for MERRA in the same way as for GEOS-5. (NOTE: We may have to rescale this in the future.)
  12. main.f
    • Read RH from disk, in the same way as for GEOS-5. (NOTE: MERRA RH is a 6-hr instantaneous field; GEOS-5 RH is 6-hr average field.)
  13. mercury_mod.f
    • Added   #elif defined( MERRA )   section to all #if blocks. For now, treat MERRA in the same way as for GEOS-5.
  14. nei2005_anthro_mod.f
    • Change instances of #if defined( GEOS_5 )   to   #if defined( GEOS_5 ) || defined( MERRA )
  15. schem.f
    • Change instances of #if defined( GEOS_5 )   to   #if defined( GEOS_5 ) || defined( MERRA )
  16. tagged_co_mod.f
    • Change instances of #if defined( GEOS_5 )   to   #if defined( GEOS_5 ) || defined( MERRA )
    • upbdflx_mod.f
    • Change instances of #if defined( GEOS_5 )   to   #if defined( GEOS_5 ) || defined( MERRA )
  17. vdiff_mod.f90
    • Added   #elif defined( MERRA )   section to all #if blocks. For now, treat MERRA in the same way as for GEOS-5.
  18. wetscav_mod.f
    • Change instances of #if defined( GEOS_5 )   to   #if defined( GEOS_5 ) || defined( MERRA )

--Bob Y. 15:08, 16 August 2010 (EDT)

Outstanding issues

Lightning

For the time being, GEOS-Chem/MERRA will read in the same the OTD/LIS redistribution factors as for GEOS-5. MERRA is based on GEOS-5.2.0, so this should be OK for a first-cut.

However, for proper treatment, the OTD/LIS redistribution factors for MERRA will be rescaled for the entire OTD/LIS observation period. This cannot be done until we have processed and regridded several years of MERRA met data.

Wet deposition and scavenging

We are currently looking into how some of the MERRA precipitation fields can be used to improve the existing GEOS-Chem wet scavenging algorithm.

Acetone ocean source

As a first cut, the ocean source of acetone for MERRA (computed in routine OCEAN_SOURCE_ACET in acetone_mod.f) is computed in the same way as for GEOS-5. The following #if block was based on the GEOS-5 code:

#elif defined( MERRA )

      !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      !%%% NOTE: Treat MERRA in the same way as GEOS-5, although    %%%
      !%%% we may want to rescale this in the future (bmy, 8/13/10) %%%
      !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

#if defined( GRID4x5 )
      REAL*8, PARAMETER :: SCALE_FACTOR = 0.9551d0   ! MERRA 4x5
#elif defined( GRID2x25 )
      REAL*8, PARAMETER :: SCALE_FACTOR = 0.2212d0   ! MERRA 2x25
#endif

At some point we may need to rescale this. However this cannot be done until we have sufficient MERRA met fields processed and regridded.

--Bob Y. 15:03, 16 August 2010 (EDT)