Difference between revisions of "MERRA implementation details"
(→Remove negative values from MERRA QI, QL fields) |
|||
(One intermediate revision by one other user not shown) | |||
Line 305: | Line 305: | ||
NOTES: | NOTES: | ||
− | # Most of the relevant MERRA 3-D data for GEOS-Chem are only available at [http://acmg.seas.harvard.edu/geos/doc/man/appendix_2.html#GMAO_1x125 1° x 1.25° horizontal resolution]. | + | # Most of the relevant MERRA 3-D data for GEOS-Chem are only available at [http://acmg.seas.harvard.edu/geos/doc/archive/man.v10-01/appendix_2.html#GMAO_1x125 1° x 1.25° horizontal resolution]. |
# [[List of MERRA met fields#SNOMAS|SNOMAS (snow mass)]] in MERRA was missing coverage over Antarctica and Greenland (this has been corrected for). | # [[List of MERRA met fields#SNOMAS|SNOMAS (snow mass)]] in MERRA was missing coverage over Antarctica and Greenland (this has been corrected for). | ||
# 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. | # 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. | ||
Line 656: | Line 656: | ||
=== Call WASHOUT from DO_MERRA_CONVECTION with proper time variable === | === Call WASHOUT from DO_MERRA_CONVECTION with proper time variable === | ||
− | '''''NOTE: This fix was included in [[GEOS-Chem v9-02 benchmark history#v9-02p|GEOS-Chem v9-02p]].''''' | + | <span style="color:green">'''''NOTE: This fix was included in [[GEOS-Chem v9-02 benchmark history#v9-02p|GEOS-Chem v9-02p]].'''''</span> |
In routine <tt>DO_MERRA_CONVECTION</tt> (in module <tt>GeosCore/convection_mod.F</tt>), we now call routine <tt>WASHOUT</tt> with time variable <tt>SDT</tt> instead of<tt>DT</tt>. Variable <tt>DT</tt> was apparently declared but uninitialized, which caused a floating-point invalid situation. | In routine <tt>DO_MERRA_CONVECTION</tt> (in module <tt>GeosCore/convection_mod.F</tt>), we now call routine <tt>WASHOUT</tt> with time variable <tt>SDT</tt> instead of<tt>DT</tt>. Variable <tt>DT</tt> was apparently declared but uninitialized, which caused a floating-point invalid situation. |
Revision as of 14:38, 19 June 2019
The MERRA reanalysis product ceased in early 2016 and is now obsolete. We recommend that you use either GEOS-FP, which is the current operational GMAO met data product, or MERRA-2, which is the current GMAO reanalysis product. MERRA will be de-supported in GEOS-Chem v11-02.
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.
The table below compares many features of GEOS-FP with other met field 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 |
|
|
|
|
NOTES:
- Most of the relevant MERRA 3-D data for GEOS-Chem are only available at 1° x 1.25° horizontal resolution.
- SNOMAS (snow mass) in MERRA was missing coverage over Antarctica and Greenland (this has been corrected for).
- 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.
--Bob Y. (talk) 19:05, 17 August 2015 (UTC)
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:
File | Modifications made |
---|---|
define.h |
|
CMN_SIZE |
|
GeosUtil directory
The following modifications for MERRA were made in the GeosUtil/ directory:
File | Modifications made |
---|---|
bpch2_mod.f |
|
directory_mod.f |
|
file_mod.f |
|
pressure_mod.f |
|
time_mod.f |
|
transfer_mod.f |
|
GeosCore directory
The following modifications for MERRA were made in the GeosCore/ directory:
File | Modifications made |
---|---|
acetone_mod.f |
|
convection_mod.f |
|
dao_mod.f |
|
depo_mercury_mod.f |
|
diag3.f |
|
dust_mod.f |
|
dust_dead_mod.f |
|
fast_j.f |
|
gamap_mod.f |
|
global_ch4_mod.f |
|
global_hno3_mod.f |
|
global_o3_mod.f |
|
initialize.f |
|
input_mod.f |
|
land_mercury_mod.f |
|
lightning_nox_mod.f |
|
Makefile |
|
main.f |
|
megan_mod.f |
|
mercury_mod.f |
|
merra_a1_mod.f |
|
merra_a3_mod.f |
|
merra_cn_mod.f |
|
merra_i6_mod.f |
|
nei2005_anthro_mod.f |
|
schem.f |
|
sulfate_mod.f |
|
tagged_co_mod.f |
|
tracer_mod.f |
|
upbdflx_mod.f |
|
vdiff_mod.f90 |
|
wetscav_mod.f |
|
GeosTomas directory
The following modifications for MERRA were made in the GeosTomas/ directory:
File | Modifications made |
---|---|
Makefile |
|
diag3.f |
|
dust_mod.f |
|
gamap_mod.f |
|
input_mod.f |
|
sulfate_mod.f |
|
wetscav_mod.f |
|
--Bob Y. 11:07, 23 September 2010 (EDT)
Resolved issues
Fractional sea ice
In order to preserve some information about sea ice leads during the regridding process, we have binned the fractional sea ice coverage into deciles (0-10%, 10-20% ... 90-100% coverage) and saved those as separate fields in the MERRA data archive for GEOS-Chem. Please see this wiki post for more information.
SNOMAS
The SNOMAS (snow depth) field in MERRA differs from that in GEOS-5. It appears that in GEOS-5 a default snow mass value was applied to grid boxes that had > 90% land ice coverage. This was not done in MERRA. Bob Yantosca has implemented an algorithm to adjust the MERRA SNOMAS field to be backwards-compatible with GEOS-5.
Dust emissions
The dust emissions in GEOS-Chem rely on "tunable parameters" to scale the dust emissions to a specified total. This is because the dust emissions are very highly dependent on the surface winds, and a small difference in winds (e.g. from GEOS-5 to MERRA) can cause a huge difference in dust emission flux.
Duncan Fairlie supplied us with updated tuning parameters for dust. In routine DST_MBL (in dust_dead_mod.f), we have added the following code:
!---------------------------------------------------------------- ! Based on results from MERRA 4x5 for years 2004-2005: ! ! (GEOS-5 - MERRA)/GEOS-5 * 100 is 26.9% in each size bin. ! ! We need to scale to the parameter FLX_MSS_FDG_FCT to make the ! dust emissions consistent. Consequently, to bring MERRA 4x5 ! dust emissions up to GEOS-5 levels, we need to DIVIDE the ! FLX_MSS_FDG_FCT used for GEOS-5 by (1. - 0.269) = 0.731. ! ! -- Duncan Fairlie (t.d.fairlie@nasa.gov), 29 Oct 2010 !---------------------------------------------------------------- REAL*8, PARAMETER :: FLX_MSS_FDG_FCT = 7.0d-4 / 0.731d0
--Bob Y. 16:23, 13 April 2011 (EDT)
Lightning
Lee Murray has provided us with updated OTD/LIS redistribution factors for the MERRA 4x5 met fields. These were implemented into GEOS-Chem v9-01-01, along with some important updates to the lightning NOx parameterization.
--Bob Y. 16:23, 13 April 2011 (EDT)
Wet deposition and scavenging
Helen Amos and Bess Corbitt have implemented an updated algorithm for wet scavenging that takes advantage of the new precipitation fields from the MERRA data archive. This was included in GEOS-Chem v9-01-01.
--Bob Y. 16:23, 13 April 2011 (EDT)
Remove negative values from MERRA QI, QL fields
NOTE: This fix was included in GEOS-Chem v9-02p.
We now reset negative numbers in the QI and QL fields to zero, to avoid anomalous behavior elsewhere. These are mixing ratios and should not really be negative. Small negatives (typically of order -4.0e-27) may have entered through the regridding process.
We added this code to routine READ_A3 in GeosCore/merra_a3_mod.F:
! Reset negatives to zero in QI, QL fields (bmy, 9/5/13) WHERE( QI < 0d0 ) QI = 0d0 WHERE( QL < 0d0 ) QL = 0d0
This error condition was caught by the GEOS-Chem unit tester when compiling with option FPE=yes.
--Bob Y. 15:31, 12 September 2013 (EDT)
Call WASHOUT from DO_MERRA_CONVECTION with proper time variable
NOTE: This fix was included in GEOS-Chem v9-02p.
In routine DO_MERRA_CONVECTION (in module GeosCore/convection_mod.F), we now call routine WASHOUT with time variable SDT instead ofDT. Variable DT was apparently declared but uninitialized, which caused a floating-point invalid situation.
We modified the code as follows:
! Call WASHOUT to compute the fraction of tracer lost ! to washout in grid box (I,J,K) CALL WASHOUT( I, J, K, IC, BXHEIGHT(K), !----------------------------------------------------------------------------- ! Prior to 9/4/13: ! Bug fix: need to call WASHOUT with SDT instead of DT, since DT is a typo. ! There is no variable DT defined in this routine. This error was found by ! compiling with FPE=yes. (bmy, 9/4/13) ! & T(K), QDOWN, DT, !----------------------------------------------------------------------------- & T(K), QDOWN, SDT, & F_WASHOUT, H2O2s(K), SO2s(K), & WASHFRAC, AER, State_Met, & State_Chm )
This error condition was caught by the GEOS-Chem unit tester when compiling with option FPE=yes.
--Bob Y. 15:29, 12 September 2013 (EDT)
Outstanding issues
Acetone ocean source
NOTE: This fix was rendered obsolete in 2011 when we added the Emily Fischer's updates for the ocean source and sink for acetone (cf. Emily Fischer) into GEOS-Chem v9-01-03b.
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. 16:24, 13 April 2011 (EDT)