|
|
Line 22: |
Line 22: |
| *0.25° lat x 0.3125° lon | | *0.25° lat x 0.3125° lon |
| | | | | |
| *0.5° lat x 0.667° lon<br>1° lat x 1.25° lon<br>1.25° x 1.25° lon | | *0.5° lat x 0.667° lon |
| | **(surface fields) |
| | *1° lat x 1.25° lon |
| | **(most 3D fields) |
| | *1.25° x 1.25° lon |
| | **(moist quantities) |
| | | | | |
| *0.5° lat x 0.667° lon | | *0.5° lat x 0.667° lon |
Line 190: |
Line 195: |
| *<tt>WETDEP</tt><br>(in <tt>wetscav_mod.F</tt>) | | *<tt>WETDEP</tt><br>(in <tt>wetscav_mod.F</tt>) |
|
| |
|
| | |-valign="top" |
| | |GEOS-Chem transport routine |
| | |bgcolor="#CCFFFF"| |
| | *<tt>TPCORE_FVDAS</tt><br>(in <tt>tpcore_fvdas_mod.F90/tt>) |
| | | |
| | *Same as MERRA2 |
| | | |
| | *Same as MERRA2 |
| | | |
| | *Same as MERRA2 |
| | |
| | |-valign="top" |
| | |File format read by GEOS-Chem |
| | |bgcolor="#CCFFFF"| |
| | *netCDF-4 |
| | | |
| | *netCDF-3 |
| | | |
| | *binary |
| | | |
| | *binary |
|
| |
|
| |} | | |} |
|
| |
|
| | | --[[User:Bmy|Bob Y.]] ([[User talk:Bmy|talk]]) 16:41, 17 August 2015 (UTC) |
| The following aspects of [[MERRA2] are identical to the older [[GEOS-FP]] operational data product.
| |
| | |
| # The MERRA2 vertical grid ([http://acmg.seas.harvard.edu/geos/doc/man/appendix_3.html#GEOS-5_native 72 hybrid levels]) is identical to that of both MERRA and [[GEOS-5|GEOS-5.2.0]].
| |
| # By and large, the same data fields that were in the MERRA product are also contained in GEOS-FP:
| |
| #* GEOS-FP provides the same time-invariant fields (FRLAKE, FRLAND, FRLANDIC, FROCEAN, PHIS) as MERRA
| |
| #* The same correction that was applied to the [[List of MERRA met fields#SNOMAS|MERRA SNOMAS (snow mass) field]] has also been applied to the GEOS-FP SNOMAS field.
| |
| #* GEOS-FP contains the same precipitation fields (DQRCU, DQRLSAN, PFICU, PFILSAN, PFLCU, PFLLSAN, REEVAPCN, REEVAPLSAN) as MERRA. This means that we can use the MERRA [[Wet deposition|wet deposition algorithms]] with the GEOS-FP data.
| |
| # The [[GEOS-FP#GEOS-FP_time_archiving|GEOS-FP time archiving]] is identical to that of MERRA ...
| |
| #* ... with one exception: GEOS-FP instantaneous data is archived every 3 hours, as opposed to 6 hours in MERRA.
| |
| | |
| --[[User:Bmy|Bob Y.]] 09:46, 21 August 2013 (EDT) | |
| | |
| === Key differences between GEOS- ===
| |
| | |
| The following aspects of [[GEOS-FP]] differ from the MERRA operational data product:
| |
| | |
| # All GEOS-FP data are placed on a horizontal grid of 0.25° x 0.3125°.
| |
| #* MERRA data fields are placed on three different horizontal grids (0.5° x 0.666°, 1° x 1.25° and 1.25° x 1.25°).
| |
| # All GEOS-FP data are placed on the [http://acmg.seas.harvard.edu/geos/doc/man/appendix_3.html#GEOS-5_native 72-level hybrid grid].
| |
| #* Some MERRA fields were only available on a 42-level pressure grid (thus requiring interpolation).
| |
| # The following data GEOS-FP data fields differ from the corresponding MERRA fields:
| |
| #* RH is now a 3-hour time-averaged field, as opposed to a 6-hour instantaneous field in MERRA.
| |
| #* QV and T are now instantaneous 3-hour fields, as opposed to 3-hour time-averaged fields in MERRA.
| |
| #* The 3-D precipitation fields now make the (e.g. DQIDTMST, DQVDTMST, DQLDTMST, etc.) obsolete. We no longer archive these.
| |
| # We have chosen to save the processed GEOS-FP data in netCDF format, as opposed to GEOS-Chem binary format.
| |
| | |
| --[[User:Bmy|Bob Y.]] 09:47, 21 August 2013 (EDT)
| |
|
| |
|
| == Required coding changes in GEOS-Chem == | | == Required coding changes in GEOS-Chem == |
File:Page is under construction.jpg
Overview
MERRA2 is the newest reanalysis meteorological data product from NASA/GMAO. 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.
The table below compares many features of MERRA2 with other GMAO met data products:
Feature
|
MERRA2
|
GEOS-FP
|
MERRA
|
GEOS-5
|
Native vertical grid
|
|
|
- 0.5° lat x 0.667° lon
- 1° lat x 1.25° lon
- 1.25° x 1.25° lon
|
|
Native horizontal grid
|
|
|
|
|
Time-invariant fields
|
- FRLAKE
- FRLAND
- FRLANDIC(E)
- FROCEAN
- PHIS
|
|
|
|
Precipitation fields
|
- DQRCU, DQRLSAN,
- PFICU, PFILSAN,
- PFLCU, PFLLSAN,
- REEVAPCN, REEVAPLSAN
|
Same fields as MERRA2
|
Same fields as MERRA2
|
- DQIDTMST
- DQLDTMST
- DQVDTMST
- MOISTQ = DQIDTMST + DQLDTMST + DQVDTMST
|
Time archiving: surface fields
|
|
|
|
|
Time archiving: 3D fields
|
- A3 (3-hr time averaged)
- I3 (3-hr instantaneous)
|
- Same as MERRA2
- Same as MERRA2
|
- A3 (3-hr time average)
- I6 (6-hour instantaneous)
|
- A6 (6-hr time average) and
- I6 (6-hr instantaneous)
|
Temperature
|
- T [K]
- I3 (3-hr instantaneous)
|
- Same as MERRA2
- Same as MERRA2
|
- Same as MERRA2
- A3 (6-hr time average)
|
- Same as MERRA2
- A6 (6-hr time average)
|
Relative humidity
|
- RH [1]
- A3 (3-hr time average)
|
- Same as MERRA2
- Same as MERRA2
|
- Same as MERRA2
- I3 (6-hr instantaneous)
|
- Same as MERRA2
- A6 (6-hr time-averaged)
|
Specific humidity
|
- QV [kg kg-1]
- I3 (3-hr instantaneous)
|
- Same as MERRA2
- Same as MERRA2
|
- Same as MERRA2
- A3 (3-hr time average)
|
- Same as MERRA2
- A6 (6-hr time-averaged)
|
Tropopause pressure
|
- TROPPT [Pa]
- A1 (1-hr time average)
|
- TROPPT [hPa]
- Same as MERRA2
|
- TROPPT [hPa]
- Same as MERRA2
|
- TROPP [hPa]
- A3 (3-hr time average)
|
Ertel potential vorticity
|
- PV [K m2 kg-1 s-1]
- A1 (1-hr time average)
|
- Same as MERRA2
- Same as MERRA2
|
- Same as MERRA2
- I6 (6-hr instantaneous)
|
- TROPP (hPa)
- A6 (3-hr time-average)
|
GEOS-Chem convection routine
|
- DO_MERRA_CONVECTION
(in convection_mod.F)
|
|
|
- NFCLDMX
(in convection_mod.F)
|
GEOS-Chem wet deposition routine
|
- WETDEP_MERRA
(in wetscav_mod.F)
|
|
|
|
GEOS-Chem transport routine
|
- TPCORE_FVDAS
(in tpcore_fvdas_mod.F90/tt>)
|
|
|
|
File format read by GEOS-Chem
|
|
|
|
|
--Bob Y. (talk) 16:41, 17 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
|
- If MET=merra2 or MET=merra-2 (case-insensitive), then activate the MERRA2 C-preprocessor switch
- i.e. Add -DMERRA2 to the Makefile variable USER_DEFS.
- If GRID=05x0625 is added, then activate the GRID05x0625 C-preprocessor switch
- i.e. Add -DGRID05x0625 to the Makefile variable USER_DEFS.
|
--Bob Y. (talk) 18:28, 12 August 2015 (UTC)
The following modifications for MERRA2 were made in the Headers/ directory:
File
|
Modifications made
|
CMN_SIZE_mod.F
|
- Added size parameters for GEOS-FP grids at 4° x 5°, 2° x 2.5°, and 0.25° x 0.3125° resolution
|
gigc_input_opt_mod.F90
|
- Add MERRA2_DIR to the OptInput derived type
- Set Input_Opt%MERRA2_DIR = './' in routine Init_GIGC_Input_Opt
|
gigc_state_met_mod.F90
|
Multiple instances:
- Now use: #if defined( GEOS_FP ) || defined( MERRA ) || defined( MERRA2 )
|
--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:
- Add MERRA2_47L and MERRA2 modelnames to the #if block
In routine GET_NAME_EXT:
- Return grid name merra2 for MERRA2 fields
In routine GET_NAME_EXT_2D:
- Now use #if defined( MERRA ) || defined( MERRA2 )
In routine GET_RES_EXT:
- Return resolution string 05x0625 for 0.5° x 0.625° grids
|
pressure_mod.F
|
In routines GET_PEDGE and GET_PEDGE_FULLGRID:
- Compute PEDGE for MERRA2 in the same way as for GEOS-5, MERRA, and GEOS-FP
In routine INIT_PRESSURE:
- Initialize Ap and Bp for MERRA2 in the same way as for GEOS-5, MERRA, and GEOS-FP
|
time_mod.F
|
In routine GET_A1_TIME:
- Compute the DATE array for MERRA2 the same way as is done for MERRA and GEOS-FP
|
transfer_mod.F
|
In routine INIT_TRANSFER:
- Set L_COPY = 36 for MERRA2
- Changed code to #if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
In several routines:
- Changed code to #if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
|
--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:
- Now use: #if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
|
carbon_mod.F
|
Multiple instances:
- Now use: #if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
|
cldice_HbrHOBr_mod.F
|
Multiple instances:
- Now use: #if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
|
convection_mod.F
|
In routine DO_CONVECTION:
- Changed code to: #if defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
In routine DO_MERRA_CONVECTION:
- Changed code to #if defined( GEOS_FP ) || defined( MERRA2 ) where we set PFICU and PFLCU
|
dao_mod.F
|
In routine COPY_I6_FIELDS:
- Changed code to: #if defined( GEOS_FP ) || defined( MERRA2 )
In routine INTERP:
- Changed code to: #if defined( GEOS_FP ) || defined( MERRA2 )
|
depo_mercury_mod.F
|
In routine ADD_Hg2_SNOWPACK
- Changed code to: #if defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
|
dao_mod.F
|
In routine COPY_I6_FIELDS:
- Changed code to: #if defined( GEOS_FP ) || defined( MERRA2 )
In routine INTERP:
- Changed code to: #if defined( GEOS_FP ) || defined( MERRA2 )
|
diag3.F
|
Multiple instances:
- Changed code to: #if defined( GEOS_FP ) || defined( MERRA2 ), etc.
|
dust_dead_mod.F
|
In routine DST_MBL:
- For GEOS-FP, add a new value for parameter FLX_MSS_FDG_FCT. The scale factor ensures that we get the same dust totals (w/in roundoff error) as for GEOS-5.
|
fast_jx_mod.F
|
In routine FAST_JX:
- Do cloud overlapping for GEOS-FP in the same way as for GEOS-5 and MERRA.
- Now use: #if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
|
gamap_mod.F
|
In routine INIT_TRACERINFO:
- Changed code to: #elif defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP )
|
global_ch4_mod.F
|
In routines WETLAND_EMIS and READ_COPROD:
- Now use: #if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP )
|
input_mod.F
|
In routine READ_SIMULATION_MENU:
- Now read value for Input_Opt%MERRA2_DIR from input.geos
- Also set Input_Opt%RES_DIR accordingly for 0.5° x 0.625° nested grids
- Set LUNZIP=.FALSE. for MERRA2 met
In routine READ_CONVECTION_MENU:
- Change #if statement to allow non-local PBL mixing for MERRA2 met data
In routine VALIDATE_DIRECTORIES:
- Error check MERRA2_DIR for start & end date
|
land_mercury_mod.F
|
In routines LAND_MERCURY_FLUX:
- Changed code to: #if defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
In routines SOILEMIS:
- Changed code to: #if defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
- Extend #if statement for variable SOIL_EMIS_FAC to get the code to compile w/o error.
- Team Hg will need to supply an updated value later on.
|
main.F
|
In main.F:
- Changed code to if defined( GEOS_FP ) || defined( MERRA2 ) where we define N_DYN_STEPS
- Changed code to if defined( GEOS_FP ) || defined( MERRA2 ) where we define Input_Opt%USE_O3_FROM_MET
In included routine READ_INITIAL_MET_FIELDS:
- Added calls to routines from merra2_read_mod.F90
In included routine READ_MET_FIELDS:
- Added calls to routines from merra2_read_mod.F90
|
mercury_mod.F
|
In routine CHEMMERCURY:
- Add placeholder K_RED_JNO2 parameter for the 0.5° x 0.625° nested grids.
- For now use the same value as for the 0.5° x 0.666° grid.
- Team Hg will need to supply an updated value later on.
- Changed code to: #if defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
- Changed code to: #if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
|
merra2_read_mod.F90
|
- Added this module w/ routines to read GEOS-FP met data (in netCDF format)
|
ocean_mercury_mod.F
|
Multiple instances:
- Changed code to: #if defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
|
planeflight_mod.F
|
In routine PLANEFLIGHT
- Now use: #if defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
|
strat_chem_mod.F90
|
Multiple instances:
- Now use: #if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
In routine DO_SYNOZ:
- Add placeholder values for 0.5° x 0.625° grids
|
sulfate_mod.F
|
In routine CHEM_SO2:
- Changed code to: #if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
In routine INIT_SULFATE:
- Changed code to: #if !defined( GEOS_5 ) && !defined( MERRA ) && !defined( GEOS_FP ) && !defined( MERRA2 )
In routine SRCSFC30 (TOMAS-only):
- Added a placeholder value for TSCALE for the 0.5° x 0.625° grids
|
tagged_ox_mod.F
|
In routine GET_REGIONAL_POX:
- Now use: #if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
|
tpcore_bc_mod.F:
|
Multiple instances:
- Added MERRA2 placeholder values for I1_BC_CH, I2_BC_CH, J1_BC_CH, J2_BC_CH
- Added MERRA2 placeholder values for I1_BC_EU, I2_BC_EU, J1_BC_EU, J2_BC_EU
- Added MERRA2 placeholder values for I1_BC_NA, I2_BC_NA, J1_BC_NA, J2_BC_NA
|
vdiff_mod.F90
|
In routine VDIFFDR:
- Changed code to: #if defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
|
wetscav_mod.F
|
In routine DO_WETDEP:
- Changed code to: #if defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
In routine DO_WASHOUT_ONLY::
- Changed code to: #if defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
In routine MAKE_QQ:
- Changed code to: #defined( GEOS_FP ) || defined( MERRA2 )
In routine RAINOUT:
- Changed code to: #if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
|
--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:
- Extend the #ifdef statement to add the parameter DEF_MET = 'merra2'
- Extend the #ifdef statement to add the parameter DEF_RES = '05x0625'
|
hco_interp_mod.F90
|
In routine MODLEV_INTERPOLATE:
- Changed code to: #if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
|
--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:
- Changed code to: #if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
|
hcox_dustdead_mod.F
|
In routine HCOX_DUSTDEAD_GETTUN:
- Add placeholder values of FLX_MSS_FDG_FCT = -999 for the MERRA2 2° x 2.5° and 4° x 5° grids.
- We will add the correct values once we can run simulations with at least a year of met data.
|
hcox_lightnox_mod.F
|
In routine GET_OTD_LIS_SCALE:
- Add placeholder values of ANN_AVG_FLASHRATE for the MERRA2 0.5° x 0.625° grids.
- Add placeholder values of BETA for the MERRA2 2° x 2.5° and 4° x 5° grids.
- We will add the correct values once we can run simulations with at least a year of met data.
|
hcox_megan_mod.F
|
In routine GET_GAMMA_SM:
- Changed code to: #if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
|
hcox_tomas_dustdead_mod.F
|
In routine HCOX_TOMAS_DUSTDEAD_GETTUN:
- Add placeholder values of FLX_MSS_FDG_FCT = -999 for the MERRA2 2° x 2.5° and 4° x 5° grids.
- We will add the correct values once we can run simulations with at least a year of met data.
|
--Bob Y. (talk) 18:53, 12 August 2015 (UTC)