MERRA-2 implementation details: Difference between revisions
Line 303: | Line 303: | ||
As of this writing, we have [[#Required coding changes in GEOS-Chem|we have modified GEOS-Chem (as described below)]] so that it can be driven by the new [[MERRA2|NASA/GMAO MERRA2 reanalysis data product]]. These source code updates were validated in | As of this writing, we have [[#Required coding changes in GEOS-Chem|we have modified GEOS-Chem (as described below)]] so that it can be driven by the new [[MERRA2|NASA/GMAO MERRA2 reanalysis data product]]. These source code updates were validated in | ||
with the 1-month benchmark simulation [[GEOS-Chem v11-01 benchmark history#v11-01c|v11-01c]] and approved on 14 | with the 1-month benchmark simulation [[GEOS-Chem v11-01 benchmark history#v11-01c|v11-01c]] and approved on 14 Sept 2015. | ||
Currently, several of the GEOS-Chem specialty simulations are already compatible with MERRA2. These include: | Currently, several of the GEOS-Chem specialty simulations are already compatible with MERRA2. These include: |
Revision as of 14:45, 15 September 2015
Overview
MERRA2 is the newest reanalysis meteorological data product from NASA/GMAO. It is created with the NASA/GMAO GEOS Data Assimilation System (aka GEOS-DAS), version 5.12.4. Overall, the structure of MERRA2 is very similar to the GMAO "forward processing" data product, which we refer to as GEOS-FP. Therefore, within GEOS-Chem we can (for the most part) treat MERRA2 in the same way as we do for the GEOS_FP.
Comparing MERRA2 to other GMAO met data products
The table below compares many features of MERRA2 with other GMAO met data products:
Feature | MERRA2 | GEOS-FP | MERRA | GEOS-5 |
---|---|---|---|---|
Native vertical grid |
|
|
|
|
Native horizontal grid |
|
|
|
|
Time-invariant fields |
|
|
|
|
Time archiving: surface fields |
|
|
|
|
Time archiving: 3D fields |
|
|
|
|
Timestamps | ||||
Precipitation fields |
|
|
|
|
Temperature |
|
|
|
|
Relative humidity |
|
|
|
|
Specific humidity |
|
|
|
|
Vertical pressure velocity |
|
|
|
|
Ertel potential vorticity |
|
|
|
|
Snow mass |
|
|
|
|
Sea level pressure |
|
|
|
|
Surface pressure |
|
|
|
|
Tropopause pressure |
|
|
|
|
GEOS-Chem convection routine |
|
|
|
|
GEOS-Chem wet deposition routine |
|
|
|
|
GEOS-Chem transport routine |
|
|
|
|
File format read by GEOS-Chem |
|
|
|
|
--Bob Y. (talk) 16:41, 17 August 2015 (UTC)
Timeline for integration into GEOS-Chem
As of this writing, we have we have modified GEOS-Chem (as described below) so that it can be driven by the new NASA/GMAO MERRA2 reanalysis data product. These source code updates were validated in with the 1-month benchmark simulation v11-01c and approved on 14 Sept 2015.
Currently, several of the GEOS-Chem specialty simulations are already compatible with MERRA2. These include:
- CO2 simulation
- CH4 simulation
- Hg simulation (but some tuning factors for nested grids are still needed)
- POPs simulation
- Rn-Pb-Be simulation
- Tagged O3 simulation
Making the various "full-chemistry simulations" (i.e. those using the benchmark, UCX, SOA, and tropchem chemistry mechanisms) compatible with MERRA2 will take longer. These "full-chemistry" simulations use emissions (e.g. lightning, dust) that have scale factors that must be tuned specifically for each met field product. In order to do this tuning, we have to have at least 1 or more years of MERRA2 met data processed and saved to disk.
For more information about MERRA2, please see these resources:
- MERRA2 page on the GEOS-Chem wiki
- List of MERRA2 met fields used for GEOS-Chem
- Version history of GMAO met data products
- Comparing MERRA2 to other GMAO met data products
--Bob Y. (talk) 14:54, 18 August 2015 (UTC)
Required coding changes in GEOS-Chem
As noted in the section above, the similarities between MERRA2 and GEOS-FP (especially of the vertical grids) means that in most cases we can just treat MERRA2 in the same way as for GEOS-FP. 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 ) || defined( MERRA ) || defined( GEOS_FP )
to
#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
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 MERRA2:
Top-level directory
The following modifications for MERRA2 were made in the root GEOS-Chem directory:
File | Modifications made |
---|---|
Makefile_header.mk |
|
--Bob Y. (talk) 18:28, 12 August 2015 (UTC)
Headers directory
The following modifications for MERRA2 were made in the Headers/ directory:
File | Modifications made |
---|---|
CMN_SIZE_mod.F |
|
gigc_input_opt_mod.F90 |
|
gigc_state_met_mod.F90 | Multiple instances:
|
--Bob Y. (talk) 18:28, 12 August 2015 (UTC)
GeosUtil directory
The following modifications for MERRA2 were made in the GeosUtil/ directory:
File | Modifications made |
---|---|
bpch2_mod.F | In routine GET_MODELNAME:
In routine GET_NAME_EXT:
In routine GET_NAME_EXT_2D:
In routine GET_RES_EXT:
|
pressure_mod.F | In routines GET_PEDGE and GET_PEDGE_FULLGRID:
In routine INIT_PRESSURE:
|
time_mod.F | In routine GET_A1_TIME:
|
transfer_mod.F | In routine INIT_TRANSFER:
In several routines:
|
--Bob Y. (talk) 20:33, 12 August 2015 (UTC)
GeosCore directory
The following modifications for MERRA2 were made in the GeosCore/ directory:
File | Modifications made |
---|---|
calcrate.F | Multiple instances:
|
carbon_mod.F | Multiple instances:
|
cldice_HbrHOBr_mod.F | Multiple instances:
|
convection_mod.F | In routine DO_CONVECTION:
In routine DO_MERRA_CONVECTION:
|
dao_mod.F | In routine COPY_I6_FIELDS:
In routine INTERP:
|
depo_mercury_mod.F | In routine ADD_Hg2_SNOWPACK
|
dao_mod.F | In routine COPY_I6_FIELDS:
In routine INTERP:
|
diag3.F | Multiple instances:
|
dust_dead_mod.F | In routine DST_MBL:
|
fast_jx_mod.F | In routine FAST_JX:
|
gamap_mod.F | In routine INIT_TRACERINFO:
|
global_ch4_mod.F | In routines WETLAND_EMIS and READ_COPROD:
|
input_mod.F | In routine READ_SIMULATION_MENU:
In routine READ_CONVECTION_MENU:
In routine VALIDATE_DIRECTORIES:
|
land_mercury_mod.F |
In routines LAND_MERCURY_FLUX:
In routines SOILEMIS:
|
main.F | In main.F:
In included routine READ_INITIAL_MET_FIELDS:
In included routine READ_MET_FIELDS:
|
mercury_mod.F | In routine CHEMMERCURY:
|
merra2_read_mod.F90 |
|
ocean_mercury_mod.F | Multiple instances:
|
planeflight_mod.F | In routine PLANEFLIGHT
|
strat_chem_mod.F90 | Multiple instances:
In routine DO_SYNOZ:
|
sulfate_mod.F | In routine CHEM_SO2:
In routine INIT_SULFATE:
In routine SRCSFC30 (TOMAS-only):
|
tagged_ox_mod.F | In routine GET_REGIONAL_POX:
|
tpcore_bc_mod.F: | Multiple instances:
|
vdiff_mod.F90 | In routine VDIFFDR:
|
wetscav_mod.F | In routine DO_WETDEP:
In routine DO_WASHOUT_ONLY::
In routine MAKE_QQ:
In routine RAINOUT:
|
--Bob Y. (talk) 18:29, 12 August 2015 (UTC)
HEMCO/Core directory
The following modifications for MERRA2 were made in the HEMCO/Core directory:
File | Modifications made |
---|---|
hco_chartools_mod.F90 | At the top of the module:
|
hco_interp_mod.F90 | In routine MODLEV_INTERPOLATE:
|
--Bob Y. (talk) 18:28, 12 August 2015 (UTC)
HEMCO/Extensions directory
The following modifications for MERRA2 were made in the HEMCO/Extensions directory:
File | Modifications made |
---|---|
hcox_ch4wetland_mod.F90 | In routine WETLAND_EMIS:
|
hcox_dustdead_mod.F | In routine HCOX_DUSTDEAD_GETTUN:
|
hcox_lightnox_mod.F | In routine GET_OTD_LIS_SCALE:
|
hcox_megan_mod.F | In routine GET_GAMMA_SM:
|
hcox_tomas_dustdead_mod.F | In routine HCOX_TOMAS_DUSTDEAD_GETTUN:
|