MERRA-2 implementation details: Difference between revisions
m (Melissa Payer moved page MERRA2 implementation details to MERRA-2 implementation details: Use official product name from GMAO) |
No edit summary |
||
Line 1: | Line 1: | ||
== Overview == | == Overview == | ||
[[ | [[MERRA-2]] is the newest reanalysis meteorological data product from [http://gmao.gsfc.nasa.gov NASA/GMAO]. It is created with the NASA/GMAO GEOS Data Assimilation System (aka GEOS-DAS), [[Version_history_of_GMAO_met_data_products#MERRA-2|version 5.12.4]]. Overall, the structure of MERRA-2 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 MERRA-2 in the same way as we do for the GEOS_FP. | ||
For more information about | For more information about MERRA-2, please see these resources: | ||
*[[ | *[[MERRA-2|''MERRA-2'' page on the GEOS-Chem wiki]] | ||
*[[List of | *[[List of MERRA-2 met fields|List of MERRA-2 met fields used for GEOS-Chem]] | ||
*[[Version history of GMAO met data products]] | *[[Version history of GMAO met data products]] | ||
=== Comparing | === Comparing MERRA-2 to other GMAO met data products === | ||
The table below compares many features of | The table below compares many features of MERRA-2 with other GMAO met data products: | ||
{| border=1 cellspacing=0 cellpadding=5 | {| border=1 cellspacing=0 cellpadding=5 | ||
|-bgcolor="#CCCCCC" | |-bgcolor="#CCCCCC" | ||
!width="250px"|Feature | !width="250px"|Feature | ||
!bgcolor="#CCFFFF" width="200px"|[[ | !bgcolor="#CCFFFF" width="200px"|[[MERRA-2]] | ||
!width="200px"|[[GEOS-FP]] | !width="200px"|[[GEOS-FP]] | ||
!width="200px"|[[MERRA]] | !width="200px"|[[MERRA]] | ||
Line 42: | Line 42: | ||
*72 hybrid levels | *72 hybrid levels | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
|-valign="top" | |-valign="top" | ||
Line 57: | Line 57: | ||
*PHIS | *PHIS | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
|-valign="top" | |-valign="top" | ||
Line 68: | Line 68: | ||
*A1 (1-hr time averaged) | *A1 (1-hr time averaged) | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*A3 (6-hr time average) | *A3 (6-hr time average) | ||
Line 80: | Line 80: | ||
*I3 (3-hr instantaneous) | *I3 (3-hr instantaneous) | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*A3 (3-hr time average) | *A3 (3-hr time average) | ||
Line 92: | Line 92: | ||
|Timestamps | |Timestamps | ||
|bgcolor="#CCFFFF"| | |bgcolor="#CCFFFF"| | ||
*[[ | *[[MERRA-2#MERRA-2_time_archiving|See this wiki page]] | ||
| | | | ||
*[[GEOS-FP#GEOS-FP_time_archiving|See this wiki page]] | *[[GEOS-FP#GEOS-FP_time_archiving|See this wiki page]] | ||
Line 108: | Line 108: | ||
*REEVAPCN, REEVAPLSAN | *REEVAPCN, REEVAPLSAN | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*DQIDTMST | *DQIDTMST | ||
Line 123: | Line 123: | ||
*I3 (3-hr instantaneous) | *I3 (3-hr instantaneous) | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
*A3 (6-hr time average) | *A3 (6-hr time average) | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
*A6 (6-hr time average) | *A6 (6-hr time average) | ||
Line 138: | Line 138: | ||
*A3 (3-hr time average) | *A3 (3-hr time average) | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
*I3 (6-hr instantaneous) | *I3 (6-hr instantaneous) | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
*A6 (6-hr time-averaged) | *A6 (6-hr time-averaged) | ||
Line 153: | Line 153: | ||
*I3 (3-hr instantaneous) | *I3 (3-hr instantaneous) | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
*A3 (3-hr time average) | *A3 (3-hr time average) | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
*A6 (6-hr time-averaged) | *A6 (6-hr time-averaged) | ||
Line 168: | Line 168: | ||
*A3 (3-hr time average) | *A3 (3-hr time average) | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
*I6 (6-hr instantaneous) | *I6 (6-hr instantaneous) | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
*A6 (6-hr time-averaged) | *A6 (6-hr time-averaged) | ||
Line 183: | Line 183: | ||
*A1 (1-hr time average) | *A1 (1-hr time average) | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
*I6 (6-hr instantaneous) | *I6 (6-hr instantaneous) | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
*A6 (3-hr time-average) | *A6 (3-hr time-average) | ||
Line 199: | Line 199: | ||
*[[List_of_MERRA_met_fields#SNOMAS|Missing coverage at poles is now corrected, as per MERRA]] | *[[List_of_MERRA_met_fields#SNOMAS|Missing coverage at poles is now corrected, as per MERRA]] | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
*Same as | *Same as MERRA-2 | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
*Same as | *Same as MERRA-2 | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*SNOMAS [m] | *SNOMAS [m] | ||
Line 218: | Line 218: | ||
| | | | ||
*SLP [hPa] | *SLP [hPa] | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*SLP [hPa] | *SLP [hPa] | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*SLP [hPa] | *SLP [hPa] | ||
Line 250: | Line 250: | ||
| | | | ||
*TROPPT [hPa] | *TROPPT [hPa] | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*TROPPT [hPa] | *TROPPT [hPa] | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*TROPP [hPa] | *TROPP [hPa] | ||
Line 263: | Line 263: | ||
*<tt>DO_MERRA_CONVECTION</tt><br>(in <tt>convection_mod.F</tt>) | *<tt>DO_MERRA_CONVECTION</tt><br>(in <tt>convection_mod.F</tt>) | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*<tt>NFCLDMX</tt><br>(in <tt>convection_mod.F</tt>) | *<tt>NFCLDMX</tt><br>(in <tt>convection_mod.F</tt>) | ||
Line 274: | Line 274: | ||
*<tt>WETDEP_MERRA</tt><br>(<tt>wetscav_mod.F</tt>) | *<tt>WETDEP_MERRA</tt><br>(<tt>wetscav_mod.F</tt>) | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*<tt>WETDEP</tt><br>(<tt>wetscav_mod.F</tt>) | *<tt>WETDEP</tt><br>(<tt>wetscav_mod.F</tt>) | ||
Line 285: | Line 285: | ||
*<tt>TPCORE_FVDAS</tt><br>(<tt>tpcore_fvdas_mod.F90</tt>) | *<tt>TPCORE_FVDAS</tt><br>(<tt>tpcore_fvdas_mod.F90</tt>) | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
| | | | ||
*Same as | *Same as MERRA-2 | ||
|-valign="top" | |-valign="top" | ||
Line 310: | Line 310: | ||
==== Initial modifications ==== | ==== Initial modifications ==== | ||
As of August 2015, 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 [[ | As of August 2015, 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 [[MERRA-2|NASA/GMAO MERRA-2 reanalysis data product]]. These source code updates were validated | ||
with the 1-month benchmark simulation [[GEOS-Chem v11-01 benchmark history#v11-01c|v11-01c]] and approved on 14 Sept 2015. | 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 | Currently, several of the GEOS-Chem specialty simulations are already compatible with MERRA-2. These include: | ||
*[[CO2_simulation|CO2 simulation]] | *[[CO2_simulation|CO2 simulation]] | ||
Line 326: | Line 326: | ||
==== Modifications for the nested grid simulations ==== | ==== Modifications for the nested grid simulations ==== | ||
There were several modifications needed to run [[GEOS-Chem_nested_grid_simulations|nested grid simulations]] with | There were several modifications needed to run [[GEOS-Chem_nested_grid_simulations|nested grid simulations]] with MERRA-2. The source code updates for running MERRA-2 on the 0.5x0.625 nested NA and nested CH grids were included in [[GEOS-Chem v11-01 benchmark history#v11-01e|v11-01e]] (approved 04 Jan 2016). | ||
--[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|talk]]) 17:13, 14 December 2015 (UTC) | --[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|talk]]) 17:13, 14 December 2015 (UTC) | ||
Line 332: | Line 332: | ||
==== In the pipeline ==== | ==== In the pipeline ==== | ||
Making the various [[GEOS-Chem_chemistry_mechanisms#NOx-Ox-hydrocarbon-aerosol_chemistry_and_variants|"full-chemistry simulations"]] (i.e. those using the benchmark, UCX, SOA, and tropchem chemistry mechanisms) compatible with | Making the various [[GEOS-Chem_chemistry_mechanisms#NOx-Ox-hydrocarbon-aerosol_chemistry_and_variants|"full-chemistry simulations"]] (i.e. those using the benchmark, UCX, SOA, and tropchem chemistry mechanisms) compatible with MERRA-2 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. As of February 2016, the [[GEOS-Chem Support Team|GCST]] is working on computing the dust and lightning scale factors using MERRA-2 met fields for 2009–2014. '''''This update is slated for inclusion in [[GEOS-Chem v11-01#v11-01f|v11-01f]].''''' | ||
When the entire | When the entire MERRA-2 coverage period (1980–present) has been processed, the lightning and dust scale factors for MERRA-2 will be adjusted as needed. | ||
--[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|talk]]) 21:08, 5 February 2016 (UTC) | --[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|talk]]) 21:08, 5 February 2016 (UTC) | ||
Line 340: | Line 340: | ||
== Required coding changes in GEOS-Chem == | == Required coding changes in GEOS-Chem == | ||
As noted in the section above, the similarities between [[ | As noted in the section above, the similarities between [[MERRA-2]] and [[GEOS-FP]] (especially of the vertical grids) means that in most cases we can just treat MERRA-2 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 ) | #if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) | ||
Line 346: | Line 346: | ||
to | to | ||
#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( | #if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA-2 ) | ||
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 | 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-2: | ||
=== Top-level directory === | === Top-level directory === | ||
The following modifications for [[ | The following modifications for [[MERRA-2]] were made in the root GEOS-Chem directory: | ||
{| border=1 cellspacing=0 cellpadding=5 | {| border=1 cellspacing=0 cellpadding=5 | ||
Line 361: | Line 361: | ||
|Makefile_header.mk | |Makefile_header.mk | ||
| | | | ||
*If <tt>MET=merra2</tt> or <tt>MET=merra-2</tt> (case-insensitive), then activate the <tt> | *If <tt>MET=merra2</tt> or <tt>MET=merra-2</tt> (case-insensitive), then activate the <tt>MERRA-2</tt> C-preprocessor switch | ||
**i.e. Add <tt>- | **i.e. Add <tt>-DMERRA-2</tt> to the Makefile variable <tt>USER_DEFS</tt>. | ||
*If <tt>GRID=05x0625</tt> is added, then activate the <tt>GRID05x0625</tt> C-preprocessor switch | *If <tt>GRID=05x0625</tt> is added, then activate the <tt>GRID05x0625</tt> C-preprocessor switch | ||
**i.e. Add <tt>-DGRID05x0625</tt> to the Makefile variable <tt>USER_DEFS</tt>. | **i.e. Add <tt>-DGRID05x0625</tt> to the Makefile variable <tt>USER_DEFS</tt>. | ||
Line 371: | Line 371: | ||
=== Headers directory === | === Headers directory === | ||
The following modifications for [[ | The following modifications for [[MERRA-2]] were made in the <tt>Headers/</tt> directory: | ||
{| border=1 cellspacing=0 cellpadding=5 | {| border=1 cellspacing=0 cellpadding=5 | ||
Line 384: | Line 384: | ||
|gigc_input_opt_mod.F90 | |gigc_input_opt_mod.F90 | ||
| | | | ||
*Add <tt> | *Add <tt>MERRA-2_DIR</tt> to the <tt>OptInput</tt> derived type | ||
*Set <tt>Input_Opt% | *Set <tt>Input_Opt%MERRA-2_DIR = './'</tt> in routine <tt>Init_GIGC_Input_Opt</tt> | ||
|-valign="top" | |-valign="top" | ||
|gigc_state_met_mod.F90 | |gigc_state_met_mod.F90 | ||
|Multiple instances: | |Multiple instances: | ||
*Now use: <tt>#if defined( GEOS_FP ) || defined( MERRA ) || defined( | *Now use: <tt>#if defined( GEOS_FP ) || defined( MERRA ) || defined( MERRA-2 )</tt> | ||
|} | |} | ||
Line 397: | Line 397: | ||
=== GeosUtil directory === | === GeosUtil directory === | ||
The following modifications for [[ | The following modifications for [[MERRA-2]] were made in the <tt>GeosUtil/</tt> directory: | ||
{| border=1 cellspacing=0 cellpadding=5 | {| border=1 cellspacing=0 cellpadding=5 | ||
Line 407: | Line 407: | ||
|bpch2_mod.F | |bpch2_mod.F | ||
|In routine GET_MODELNAME: | |In routine GET_MODELNAME: | ||
*Add <tt> | *Add <tt>MERRA-2_47L</tt> and <tt>MERRA-2</tt> modelnames to the <tt>#if</tt> block | ||
In routine GET_NAME_EXT: | In routine GET_NAME_EXT: | ||
*Return grid name <tt>merra2</tt> for | *Return grid name <tt>merra2</tt> for MERRA-2 fields | ||
In routine GET_NAME_EXT_2D: | In routine GET_NAME_EXT_2D: | ||
*Now use <tt>#if defined( MERRA ) || defined( | *Now use <tt>#if defined( MERRA ) || defined( MERRA-2 ) | ||
In routine GET_RES_EXT: | In routine GET_RES_EXT: | ||
*Return resolution string <tt>05x0625</tt> for 0.5° x 0.625° grids | *Return resolution string <tt>05x0625</tt> for 0.5° x 0.625° grids | ||
Line 418: | Line 418: | ||
|pressure_mod.F | |pressure_mod.F | ||
|In routines GET_PEDGE and GET_PEDGE_FULLGRID: | |In routines GET_PEDGE and GET_PEDGE_FULLGRID: | ||
*Compute PEDGE for | *Compute PEDGE for MERRA-2 in the same way as for GEOS-5, MERRA, and GEOS-FP | ||
In routine INIT_PRESSURE: | In routine INIT_PRESSURE: | ||
*Initialize Ap and Bp for | *Initialize Ap and Bp for MERRA-2 in the same way as for GEOS-5, MERRA, and GEOS-FP | ||
|-valign="top" | |-valign="top" | ||
|time_mod.F | |time_mod.F | ||
|In routine GET_A1_TIME: | |In routine GET_A1_TIME: | ||
*Compute the <tt>DATE</tt> array for | *Compute the <tt>DATE</tt> array for MERRA-2 the same way as is done for MERRA and GEOS-FP | ||
|-valign="top" | |-valign="top" | ||
|transfer_mod.F | |transfer_mod.F | ||
|In routine INIT_TRANSFER: | |In routine INIT_TRANSFER: | ||
*Set <tt>L_COPY = 36</tt> for | *Set <tt>L_COPY = 36</tt> for MERRA-2 | ||
*Changed code to <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( | *Changed code to <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
In several routines: | In several routines: | ||
*Changed code to <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( | *Changed code to <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
|} | |} | ||
Line 440: | Line 440: | ||
=== GeosCore directory === | === GeosCore directory === | ||
The following modifications for [[ | The following modifications for [[MERRA-2]] were made in the <tt>GeosCore/</tt> directory: | ||
{| border=1 cellspacing=0 cellpadding=5 | {| border=1 cellspacing=0 cellpadding=5 | ||
Line 450: | Line 450: | ||
|calcrate.F | |calcrate.F | ||
|Multiple instances: | |Multiple instances: | ||
*Now use: <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( | *Now use: <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
|-valign="top" | |-valign="top" | ||
|carbon_mod.F | |carbon_mod.F | ||
|Multiple instances: | |Multiple instances: | ||
*Now use: <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( | *Now use: <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
|-valign="top" | |-valign="top" | ||
|cldice_HbrHOBr_mod.F | |cldice_HbrHOBr_mod.F | ||
|Multiple instances: | |Multiple instances: | ||
*Now use: <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( | *Now use: <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
|-valign="top" | |-valign="top" | ||
|convection_mod.F | |convection_mod.F | ||
|In routine DO_CONVECTION: | |In routine DO_CONVECTION: | ||
*Changed code to: <tt>#if defined( MERRA ) || defined( GEOS_FP ) || defined( | *Changed code to: <tt>#if defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
In routine DO_MERRA_CONVECTION: | In routine DO_MERRA_CONVECTION: | ||
*Changed code to <tt>#if defined( GEOS_FP ) || defined( | *Changed code to <tt>#if defined( GEOS_FP ) || defined( MERRA-2 )</tt> where we set PFICU and PFLCU | ||
|-valign="top" | |-valign="top" | ||
|dao_mod.F | |dao_mod.F | ||
|In routine COPY_I6_FIELDS: | |In routine COPY_I6_FIELDS: | ||
*Changed code to: <tt>#if defined( GEOS_FP ) || defined( | *Changed code to: <tt>#if defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
In routine INTERP: | In routine INTERP: | ||
*Changed code to: <tt>#if defined( GEOS_FP ) || defined( | *Changed code to: <tt>#if defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
|-valign="top" | |-valign="top" | ||
|depo_mercury_mod.F | |depo_mercury_mod.F | ||
|In routine ADD_Hg2_SNOWPACK | |In routine ADD_Hg2_SNOWPACK | ||
*Changed code to: <tt>#if defined( MERRA ) || defined( GEOS_FP ) || defined( | *Changed code to: <tt>#if defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
|-valign="top" | |-valign="top" | ||
|dao_mod.F | |dao_mod.F | ||
|In routine COPY_I6_FIELDS: | |In routine COPY_I6_FIELDS: | ||
*Changed code to: <tt>#if defined( GEOS_FP ) || defined( | *Changed code to: <tt>#if defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
In routine INTERP: | In routine INTERP: | ||
*Changed code to: <tt>#if defined( GEOS_FP ) || defined( | *Changed code to: <tt>#if defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
|-valign="top" | |-valign="top" | ||
|diag3.F | |diag3.F | ||
|Multiple instances: | |Multiple instances: | ||
*Changed code to: <tt>#if defined( GEOS_FP ) || defined( | *Changed code to: <tt>#if defined( GEOS_FP ) || defined( MERRA-2 )</tt>, etc. | ||
|-valign="top" | |-valign="top" | ||
Line 502: | Line 502: | ||
|In routine FAST_JX: | |In routine FAST_JX: | ||
*Do cloud overlapping for GEOS-FP in the same way as for GEOS-5 and MERRA. | *Do cloud overlapping for GEOS-FP in the same way as for GEOS-5 and MERRA. | ||
*Now use: <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( | *Now use: <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
|-valign="top" | |-valign="top" | ||
Line 517: | Line 517: | ||
|input_mod.F | |input_mod.F | ||
|In routine READ_SIMULATION_MENU: | |In routine READ_SIMULATION_MENU: | ||
*Now read value for <tt>Input_Opt% | *Now read value for <tt>Input_Opt%MERRA-2_DIR</tt> from <tt>input.geos</tt> | ||
*Also set <tt>Input_Opt%RES_DIR</tt> accordingly for 0.5° x 0.625° nested grids | *Also set <tt>Input_Opt%RES_DIR</tt> accordingly for 0.5° x 0.625° nested grids | ||
*Set LUNZIP=.FALSE. for | *Set LUNZIP=.FALSE. for MERRA-2 met | ||
In routine READ_CONVECTION_MENU: | In routine READ_CONVECTION_MENU: | ||
*Change #if statement to allow non-local PBL mixing for | *Change #if statement to allow non-local PBL mixing for MERRA-2 met data | ||
In routine VALIDATE_DIRECTORIES: | In routine VALIDATE_DIRECTORIES: | ||
*Error check | *Error check MERRA-2_DIR for start & end date | ||
|-valign="top" | |-valign="top" | ||
Line 529: | Line 529: | ||
| | | | ||
In routines LAND_MERCURY_FLUX: | In routines LAND_MERCURY_FLUX: | ||
*Changed code to: <tt>#if defined( MERRA ) || defined( GEOS_FP ) || defined( | *Changed code to: <tt>#if defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
In routines SOILEMIS: | In routines SOILEMIS: | ||
*Changed code to: <tt>#if defined( MERRA ) || defined( GEOS_FP ) || defined( | *Changed code to: <tt>#if defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
*Extend #if statement for variable SOIL_EMIS_FAC to get the code to compile w/o error. | *Extend #if statement for variable SOIL_EMIS_FAC to get the code to compile w/o error. | ||
**<span style="color:red">Team Hg will need to supply an updated value later on.</span> | **<span style="color:red">Team Hg will need to supply an updated value later on.</span> | ||
Line 538: | Line 538: | ||
|main.F | |main.F | ||
|In main.F: | |In main.F: | ||
*Changed code to <tt>if defined( GEOS_FP ) || defined( | *Changed code to <tt>if defined( GEOS_FP ) || defined( MERRA-2 )</tt> where we define <tt>N_DYN_STEPS</tt> | ||
*Changed code to <tt>if defined( GEOS_FP ) || defined( | *Changed code to <tt>if defined( GEOS_FP ) || defined( MERRA-2 )</tt> where we define <tt>Input_Opt%USE_O3_FROM_MET</tt> | ||
In included routine READ_INITIAL_MET_FIELDS: | In included routine READ_INITIAL_MET_FIELDS: | ||
*Added calls to routines from <tt>merra2_read_mod.F90</tt> | *Added calls to routines from <tt>merra2_read_mod.F90</tt> | ||
Line 551: | Line 551: | ||
**For now use the same value as for the 0.5° x 0.666° grid. | **For now use the same value as for the 0.5° x 0.666° grid. | ||
**<span style="color:red">Team Hg will need to supply an updated value later on.</span> | **<span style="color:red">Team Hg will need to supply an updated value later on.</span> | ||
*Changed code to: <tt>#if defined( MERRA ) || defined( GEOS_FP ) || defined( | *Changed code to: <tt>#if defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
*Changed code to: <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( | *Changed code to: <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
|-valign="top" | |-valign="top" | ||
Line 563: | Line 563: | ||
|ocean_mercury_mod.F | |ocean_mercury_mod.F | ||
|Multiple instances: | |Multiple instances: | ||
*Changed code to: <tt>#if defined( MERRA ) || defined( GEOS_FP ) || defined( | *Changed code to: <tt>#if defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
|-valign="top" | |-valign="top" | ||
|planeflight_mod.F | |planeflight_mod.F | ||
|In routine PLANEFLIGHT | |In routine PLANEFLIGHT | ||
*Now use: <tt>#if defined( MERRA ) || defined( GEOS_FP ) || defined( | *Now use: <tt>#if defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
|-valign="top" | |-valign="top" | ||
|strat_chem_mod.F90 | |strat_chem_mod.F90 | ||
|Multiple instances: | |Multiple instances: | ||
*Now use: <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( | *Now use: <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
In routine DO_SYNOZ: | In routine DO_SYNOZ: | ||
*Add placeholder values for 0.5° x 0.625° grids | *Add placeholder values for 0.5° x 0.625° grids | ||
Line 580: | Line 580: | ||
|sulfate_mod.F | |sulfate_mod.F | ||
|In routine CHEM_SO2: | |In routine CHEM_SO2: | ||
*Changed code to: <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( | *Changed code to: <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
In routine INIT_SULFATE: | In routine INIT_SULFATE: | ||
*Changed code to: <tt>#if !defined( GEOS_5 ) && !defined( MERRA ) && !defined( GEOS_FP ) && !defined( | *Changed code to: <tt>#if !defined( GEOS_5 ) && !defined( MERRA ) && !defined( GEOS_FP ) && !defined( MERRA-2 )</tt> | ||
In routine SRCSFC30 (TOMAS-only): | In routine SRCSFC30 (TOMAS-only): | ||
*Added a placeholder value for TSCALE for the 0.5° x 0.625° grids | *Added a placeholder value for TSCALE for the 0.5° x 0.625° grids | ||
Line 589: | Line 589: | ||
|tagged_ox_mod.F | |tagged_ox_mod.F | ||
|In routine GET_REGIONAL_POX: | |In routine GET_REGIONAL_POX: | ||
*Now use: <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( | *Now use: <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
|-valign="top" | |-valign="top" | ||
|tpcore_bc_mod.F: | |tpcore_bc_mod.F: | ||
|Multiple instances: | |Multiple instances: | ||
*Added | *Added MERRA-2 placeholder values for <tt>I1_BC_CH, I2_BC_CH, J1_BC_CH, J2_BC_CH</tt> | ||
*Added | *Added MERRA-2 placeholder values for <tt>I1_BC_EU, I2_BC_EU, J1_BC_EU, J2_BC_EU</tt> | ||
*Added | *Added MERRA-2 placeholder values for <tt>I1_BC_NA, I2_BC_NA, J1_BC_NA, J2_BC_NA</tt> | ||
|-valign="top" | |-valign="top" | ||
|vdiff_mod.F90 | |vdiff_mod.F90 | ||
|In routine VDIFFDR: | |In routine VDIFFDR: | ||
*Changed code to: <tt>#if defined( MERRA ) || defined( GEOS_FP ) || defined( | *Changed code to: <tt>#if defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
|-valign="top" | |-valign="top" | ||
|wetscav_mod.F | |wetscav_mod.F | ||
|In routine DO_WETDEP: | |In routine DO_WETDEP: | ||
*Changed code to: <tt>#if defined( MERRA ) || defined( GEOS_FP ) || defined( | *Changed code to: <tt>#if defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
In routine DO_WASHOUT_ONLY:: | In routine DO_WASHOUT_ONLY:: | ||
*Changed code to: <tt>#if defined( MERRA ) || defined( GEOS_FP ) || defined( | *Changed code to: <tt>#if defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
In routine MAKE_QQ: | In routine MAKE_QQ: | ||
*Changed code to: <tt>#defined( GEOS_FP ) || defined( | *Changed code to: <tt>#defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
In routine RAINOUT: | In routine RAINOUT: | ||
*Changed code to: <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( | *Changed code to: <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
|} | |} | ||
Line 620: | Line 620: | ||
=== HEMCO/Core directory === | === HEMCO/Core directory === | ||
The following modifications for | The following modifications for MERRA-2 were made in the <tt>HEMCO/Core</tt> directory: | ||
{| border=1 cellspacing=0 cellpadding=5 | {| border=1 cellspacing=0 cellpadding=5 | ||
Line 636: | Line 636: | ||
|hco_interp_mod.F90 | |hco_interp_mod.F90 | ||
|In routine MODLEV_INTERPOLATE: | |In routine MODLEV_INTERPOLATE: | ||
*Changed code to: <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( | *Changed code to: <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
|} | |} | ||
Line 644: | Line 644: | ||
=== HEMCO/Extensions directory === | === HEMCO/Extensions directory === | ||
The following modifications for | The following modifications for MERRA-2 were made in the <tt>HEMCO/Extensions</tt> directory: | ||
{| border=1 cellspacing=0 cellpadding=5 | {| border=1 cellspacing=0 cellpadding=5 | ||
Line 654: | Line 654: | ||
|hcox_ch4wetland_mod.F90 | |hcox_ch4wetland_mod.F90 | ||
|In routine WETLAND_EMIS: | |In routine WETLAND_EMIS: | ||
*Changed code to: <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( | *Changed code to: <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
|-valign="top" | |-valign="top" | ||
|hcox_dustdead_mod.F | |hcox_dustdead_mod.F | ||
|In routine HCOX_DUSTDEAD_GETTUN: | |In routine HCOX_DUSTDEAD_GETTUN: | ||
*Add placeholder values of <tt>FLX_MSS_FDG_FCT = -999</tt> for the | *Add placeholder values of <tt>FLX_MSS_FDG_FCT = -999</tt> for the MERRA-2 2° x 2.5° and 4° x 5° grids. | ||
**<span style="color:red">We will add the correct values once we can run simulations with at least a year of met data.</span> | **<span style="color:red">We will add the correct values once we can run simulations with at least a year of met data.</span> | ||
Line 665: | Line 665: | ||
|hcox_lightnox_mod.F | |hcox_lightnox_mod.F | ||
|In routine GET_OTD_LIS_SCALE: | |In routine GET_OTD_LIS_SCALE: | ||
*Add placeholder values of <tt>ANN_AVG_FLASHRATE</tt> for the | *Add placeholder values of <tt>ANN_AVG_FLASHRATE</tt> for the MERRA-2 0.5° x 0.625° grids. | ||
*Add placeholder values of <tt>BETA</tt> for the | *Add placeholder values of <tt>BETA</tt> for the MERRA-2 2° x 2.5° and 4° x 5° grids. | ||
**<span style="color:red">We will add the correct values once we can run simulations with at least a year of met data.</span> | **<span style="color:red">We will add the correct values once we can run simulations with at least a year of met data.</span> | ||
Line 672: | Line 672: | ||
|hcox_megan_mod.F | |hcox_megan_mod.F | ||
|In routine GET_GAMMA_SM: | |In routine GET_GAMMA_SM: | ||
*Changed code to: <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( | *Changed code to: <tt>#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA-2 )</tt> | ||
|-valign="top" | |-valign="top" | ||
|hcox_tomas_dustdead_mod.F | |hcox_tomas_dustdead_mod.F | ||
|In routine HCOX_TOMAS_DUSTDEAD_GETTUN: | |In routine HCOX_TOMAS_DUSTDEAD_GETTUN: | ||
*Add placeholder values of <tt>FLX_MSS_FDG_FCT = -999</tt> for the | *Add placeholder values of <tt>FLX_MSS_FDG_FCT = -999</tt> for the MERRA-2 2° x 2.5° and 4° x 5° grids. | ||
**<span style="color:red">We will add the correct values once we can run simulations with at least a year of met data.</span> | **<span style="color:red">We will add the correct values once we can run simulations with at least a year of met data.</span> | ||
Revision as of 17:45, 7 March 2016
Overview
MERRA-2 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 MERRA-2 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 MERRA-2 in the same way as we do for the GEOS_FP.
For more information about MERRA-2, please see these resources:
- MERRA-2 page on the GEOS-Chem wiki
- List of MERRA-2 met fields used for GEOS-Chem
- Version history of GMAO met data products
Comparing MERRA-2 to other GMAO met data products
The table below compares many features of MERRA-2 with other GMAO met data products:
Feature | MERRA-2 | 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
Initial modifications
As of August 2015, we have we have modified GEOS-Chem (as described below) so that it can be driven by the new NASA/GMAO MERRA-2 reanalysis data product. These source code updates were validated 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 MERRA-2. 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
--Bob Y. (talk) 14:54, 18 August 2015 (UTC)
Modifications for the nested grid simulations
There were several modifications needed to run nested grid simulations with MERRA-2. The source code updates for running MERRA-2 on the 0.5x0.625 nested NA and nested CH grids were included in v11-01e (approved 04 Jan 2016).
--Melissa Sulprizio (talk) 17:13, 14 December 2015 (UTC)
In the pipeline
Making the various "full-chemistry simulations" (i.e. those using the benchmark, UCX, SOA, and tropchem chemistry mechanisms) compatible with MERRA-2 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. As of February 2016, the GCST is working on computing the dust and lightning scale factors using MERRA-2 met fields for 2009–2014. This update is slated for inclusion in v11-01f.
When the entire MERRA-2 coverage period (1980–present) has been processed, the lightning and dust scale factors for MERRA-2 will be adjusted as needed.
--Melissa Sulprizio (talk) 21:08, 5 February 2016 (UTC)
Required coding changes in GEOS-Chem
As noted in the section above, the similarities between MERRA-2 and GEOS-FP (especially of the vertical grids) means that in most cases we can just treat MERRA-2 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( MERRA-2 )
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-2:
Top-level directory
The following modifications for MERRA-2 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 MERRA-2 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 MERRA-2 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 MERRA-2 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 MERRA-2 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 MERRA-2 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:
|