diff --git a/src/swell/configuration/jedi/interfaces/geos_cf/namelists/AGCM_c360.rc b/src/swell/configuration/jedi/interfaces/geos_cf/namelists/AGCM_c360.rc new file mode 100755 index 000000000..d52aacb4a --- /dev/null +++ b/src/swell/configuration/jedi/interfaces/geos_cf/namelists/AGCM_c360.rc @@ -0,0 +1,779 @@ + +# Atmospheric Model Configuration Parameters +# ------------------------------------------ + + NX: 24 + NY: 144 + + IOSERVER_NODES: 4 +NUM_BACKEND_PES: 6 + + AGCM_IM: 360 + AGCM_JM: 2160 + AGCM_LM: 72 +AGCM_GRIDNAME: PE360x2160-CF + + AGCM.GRID_TYPE: Cubed-Sphere + AGCM.GRIDNAME: PE360x2160-CF + AGCM.NF: 6 + AGCM.LM: 72 + AGCM.IM_WORLD: 360 + +DYCORE: FV3 + + SOLAR_DT: 3600 + IRRAD_DT: 3600 +SATSIM_DT: 1800 + +SOLARAvrg: 0 +IRRADAvrg: 0 + +EOT: .TRUE. +ORBIT_ANAL2B: .TRUE. + +########################################################### +# Flag for definition of the convection scheme +# The options are RAS or GF +# ---------------------------------------- +CONVPAR_OPTION: GF + +# Override default aerosol convective scavenging and use dz method +USE_TRACER_SCAVEN: 1 + +# Flag to activated scale-awareness approach (0 false, 1 true) +USE_SCALE_DEP: 1 + +# Flag to activated diurnal cycle closure (0 false, 1 true) +DICYCLE: 1 + +# Convective plumes to be activated (1 true, 0 false) +# ---------------------------------------- +DEEP: 1 +SHALLOW: 0 +CONGESTUS: 1 + +# UW shallow cumulus settings +DOSHLW: 1 + +# Choice for the closures: +# ---------------------------------------- +# deep : 0 ensemble (all) , 1 GR, 4 ll omega, 7 moist conv, 10 PB +# shallow : 0 ensemble (Wstar/BLQE) , 1 Wstar, 4 heat-engine or 7 BLQE +# congestus: 0 ensemble (Wstar/BLQE/PB), 1 Wstar, 2 BLQE, 3 PB, 4 PB_BL +CLOSURE_DEEP:0 +CLOSURE_SHALLOW:7 +CLOSURE_CONGESTUS:3 + +# GWD Parameterization +# -------------------- + +# if .FALSE., use GEOS GWD code (default); .TRUE., use new NCAR GWD code +USE_NCAR_GWD: .FALSE. + +# This is only used if USE_NCAR_GWD is .TRUE. +BERES_FILE_NAME: ExtData/g5gcm/gwd/newmfspectra40_dc25.nc + +# Ocean Model Configuration Parameters +# ------------------------------------ + OGCM.GRID_TYPE: LatLon + OGCM.GRIDNAME: PE2880x1440-DE + OGCM.IM_WORLD: 2880 + OGCM.JM_WORLD: 1440 + OGCM.LM: 34 + + OGCM.POLE: 'PE' + OGCM.DATELINE: 'DE' + +OGCM_RUN_DT: 3600 + + +############################################################################################## +#### #### +#### SST REMAPPING #### +#### Comparing Grid Resolutions of GRID_ocean and GRID_atmos: #### +#### #### +#### IF( GRID_ocean is equal resolution to GRID_atmos ) THEN #### +#### INTERPOLATE_SST = 0 ! Conservatively BIN GRID_ocean to GRID_atmos #### +#### ELSE IF ( GRID_ocean is higher resolution than GRID_atmos ) THEN #### +#### INTERPOLATE_SST = 0 ! Conservatively BIN GRID_ocean to GRID_atmos #### +#### ELSE ( GRID_ocean is lower resolution than GRID_atmos ) #### +#### INTERPOLATE_SST = 1 ! Linearly Interpolate GRID_ocean to GRID_atmos #### +#### ENDIF #### +#### #### +############################################################################################## + +# INTERPOLATE_SST: 0 or 1 # (Default based on comparison of GRID_ocean and GRID_atmos) + +# Print Resource Parameters (0: Non-Default values, 1: ALL values) +#----------------------------------------------------------------- +PRINTRC: 1 + +# Set the number of parallel I/O processes to use when +# RESTART_TYPE and or CHECKPOINT_TYPE are set to pbinary or pnc4 +#--------------------------------------------------------------- +PARALLEL_READFORCING: 0 +NUM_READERS: 1 +NUM_WRITERS: 1 + +# Write restarts by oserver (Default: NO) +WRITE_RESTART_BY_OSERVER: NO + +# Active observer when desired +# ---------------------------- +BKG_FREQUENCY: 0 + +# Resolution of state passed to atmos analysis +# -------------------------------------------- +ANA_GRIDNAME: PC360x2160-DC +ANA_LM: 72 + +# Restart Record Parameters +# ------------------------- +RECORD_FINAL: NO +RECORD_FREQUENCY: 000000 000000 +RECORD_REF_DATE: >>SWELL_FC6H_DATE<< 21220215 +RECORD_REF_TIME: >>SWELL_FC6H_H<< 120000 + + +################################################################################################### +#### DAS/Replay Options #### +#### ------------------ #### +#### #### +#### The REPLAY mechanism operates within 2 distinct "flavors": #### +#### 1) Exact (Uses Archived Increment Files) #### +#### 2) Regular (Uses Archived Analysis/Assimilation Files) #### +#### #### +#### Exact Replays identically reproduce (bit-for-bit) a previous GEOS DAS experiment #### +#### by simply using the archived IAU forcing from the DAS experiment. #### +#### For these cases, only the CORRECTOR step is employed and is, therefore, as #### +#### efficient as a stand-alone model run. #### +#### #### +#### In order to guarantee reproducibility, the model and its BUILD parameters #### +#### (Compilers and Options) as well as all INPUT data must be identical to the #### +#### original DAS experiment. This type of REPLAY is useful when producing #### +#### additional passive, diagnostic data, or when the original data is lost. #### +#### #### +#### #### +#### Regular Replays are used to mimic the original IAU methodology, i.e., both the #### +#### PREDICTOR and the CORRECTOR steps are employed. The key difference being #### +#### that the Analysis is based on archived datasets. These Analyses may be from #### +#### the GEOS DAS system, or from any other source that is written using the #### +#### appropriate GEOS DAS ana.eta data format. #### +#### #### +#### Regular Replays will reproduce data (bit-for-bit) from the original source #### +#### Analysis experiment provided all model, input data, and Predictor/Corrector #### +#### configurations are identical to the original experiment. Otherwise, #### +#### differences in the model and/or IAU procedure will produce changes to the #### +#### assimilation and forecasts which may improve or degrade the results. #### +#### #### +#### #### +#### Note: The Operational GEOS DAS always operates in an "Exact" mode since the IAU #### +#### Increments are produced off-line, separate from the GCM and GSI executables, #### +#### based on ana.eta and bkg.eta files. Thus, the increments produces from these #### +#### files are REPLAYed in an "Exact" manner. #### +#### #### +#### #### +#### Exact Replay Details: #### +#### --------------------- #### +#### Exact Replays perform the CORRECTOR step by integrating the model forward in #### +#### time forced by the IAU Analysis increments. In MERRA-2, a single Analysis was #### +#### computed at the center of the Assimilation Cycle (6-hrs). Thus, as an example, #### +#### the cycle between 21z (or -03z) and +03z used the single Analysis at the synoptic #### +#### time of 00z. In contrast, the 4D-EnVar system produces 7 hourly Analyses (-03z, #### +#### -02z, -01z, 00z, +01z, +02z, +03z). The IAU sequence currently employed uses #### +#### the 3 Analyses defined at -03z, 00z, +03z for its IAU forcing. Both systems #### +#### may be described using the following parameters: #### +#### #### +#### CORRECTOR_DURATION nnnnnn (Duration -in seconds- of Corrector step) #### +#### REPLAY_MODE Exact #### +#### REPLAY_FILE %s.agcm_import_rst.%y4%m2%d2_%h2z.bin #### +#### REPLAY_FILE_FREQUENCY nnnnnn (Default: CORRECTOR_DURATION) #### +#### REPLAY_FILE_REFERENCE_TIME HHMMSS (Default: 000000) #### +#### #### +#### Thus, MERRA-2 => CORRECTOR_DURATION = 21600 #### +#### REPLAY_FILE_FREQUENCY = 21600 #### +#### REPLAY_FILE_REFERENCE_TIME = 000000 #### +#### #### +#### 4D_EnVar => CORRECTOR_DURATION = 21600 #### +#### REPLAY_FILE_FREQUENCY = 10800 #### +#### REPLAY_FILE_REFERENCE_TIME = 000000 #### +#### #### +#### Note: the Digital Filter (if used) is configured to provide its maximum impact #### +#### centered at the time(s) of the Analyses (00z for MERRA-2, and -03z, 00z, +03z #### +#### for 4D-EnVar). #### +#### #### +#### #### +#### Regular Replay Details: #### +#### ----------------------- #### +#### Regular Replay involves both the PREDICTOR and the CORRECTOR steps. If a single #### +#### Analysis is used within the CORRECTOR window (e.g., as in MERRA-2), the PREDICTOR #### +#### duration would be defined as the time from the beginning of the CORRECTOR step to #### +#### the time of the Analysis (e.g., 3-hours for the MERRA-2 system). However, if #### +#### multiple Analyses are used within the CORRECTOR window, the PREDICTOR duration #### +#### would be defined as the time from the beginning of the CORRECTOR step to the time #### +#### of the Last Analysis. Therefore, the length of the PREDICTOR step is computed #### +#### based on the FREQUENCY and REFERENCE TIME of the REPLAYed Analysis/Assimilation #### +#### files. Once the Increment file(s) are created, the model rewinds to the beginning #### +#### of the CORRECTOR step and performs an EXACT Replay to the just-produced files. #### +#### #### +#### #### +#### Replay09 File Details: #### +#### ---------------------- #### +#### The current 4D-EnVar system, as previously noted, produces 7 hourly Analyses: #### +#### (-03z, -02z, -01z, 00z, +01z, +02z, +03z) for each 6-hour assimilation window #### +#### centered around the 4 synoptic times of 00z, 06z, 12z, and 18z. We see that the #### +#### last Analysis (+03z) associated with each synoptic time will be over-ridden by #### +#### the first Analyiss (-03z) associated with synoptic time of the next assimilation #### +#### window. To prevent these over-ridden files from being lost, the GEOS-5 DAS #### +#### archives the (+03z) data with an appended "09" characterization (e.g., bkg09.eta, #### +#### ana09.eta, agcm09_import). Therefore, when running REPLAY, care must be given #### +#### to identify the Replay09 files if needed. A separate REPLAY_FILE09 key word is #### +#### used for this purpose, and is only utilized if the REPLAY configuration warrants. #### +#### #### +#### #### +#### Regular Replay Time Interpolation: #### +#### ---------------------------------- #### +#### In some instances the USER might wish to create IAU Increments at a frequency #### +#### greater than the frequency of the target analysis. For those cases additional #### +#### parameters are introduced and used in coordination with the standard REPLAY #### +#### parameters: #### +#### #### +#### Standard: REPLAY_FILE_FREQUENCY = nnnnn #### +#### REPLAY_FILE_REFERENCE_TIME = HHMMSS #### +#### Additional: MKIAU_FREQUENCY = nnnnn #### +#### MKIAU_REFERENCE_TIME = HHMMSS #### +#### REPLAY_TIME_INTERP = LINEAR (Default) or CUBIC #### +#### #### +#### When the additional parameters are invoked, the system time-interpolates the #### +#### REPLAY_FILE analyses to the times referenced by the MKIAU variables to create #### +#### the associated increment files. The time-interpolation is done via a LINEAR #### +#### or CUBIC scheme. #### +#### #### +################################################################################################### + +# ASSIMILATION_CYCLE: nnnnnn # (Default: 21600) +# IAU_DIGITAL_FILTER: YES or NO # (Default: YES ) + +# Typical MERRA-2 Regular REPLAY Configuration +# -------------------------------------------- + REPLAY_ANA_EXPID: >>SWELL_FP_EXP<< + REPLAY_ANA_LOCATION: >>SWELL_SCRATCHDIR<< + REPLAY_MODE: Regular + REPLAY_FILE: >>SWELL_FP_EXP<<.ana.eta.%y4%m2%d2_%h200z.nc4 + + #REPLAY_ANA_EXPID: d5294_geosit_jan18 + #REPLAY_ANA_LOCATION: /home/dao_ops/d5294_geosit_jan18/run/.../archive + #REPLAY_MODE: Regular + #REPLAY_FILE: ana/Y%y4/M%m2/d5294_geosit_jan18.bkg.eta.%y4%m2%d2_%h200z.nc4 + +# 4DIAU (recreate analysis tendency on the fly) +# --------------------------------------------- + +# Exact REPLAY Mode for 4D-IAU +# ---------------------------- + +#################################################################################################### +#### Miscellaneous Exact/Regular REPLAY Parameters #### +#### --------------------------------------------- #### +#### #### +#### REPLAY FILE MUST be on an A-Grid! #### +#### #### +#### REPLAY Variable Defaults: p,u,v,t,qv,o3 #### +#### REPLAY Variables are set to either: YES, NO, or a character_string NAME. #### +#### The NAME is used as a means of creating an ALIAS for the REPLAY variable. #### +#### An ALIAS is required when the REPLAY FILE contains a variable name NOT included #### +#### in our standard list. (e.g., REPLAY_T: temperature) #### +#### #### +#### NOTE: When using an ALIAS for REPLAY_T, you must also supply the REPLAY_T_TYPE #### +#### ----- REPLAY_T_TYPE: T # Options: T,TV,TH,THV #### +#### #### +#### REPLAY Variables may be disabled by setting resource parameter to: NO #### +#### (E.g., REPLAY_QV: NO to disable REPLAY of Moisture). #### +#### #### +#### #### +#################################################################################################### +# +# BKG2ANACNSRV: 0 or 1 # (Defaults to 0:BiLinear Interpolation. Note: Conservative Transformation creates Non-Wavenumber 1 Winds at Poles) +# ANA2BKGCNSRV: 0 or 1 # (Defaults to 0:BiLinear Interpolation. Note: Conservative Transformation creates Non-Wavenumber 1 Winds at Poles) +# +# Regular REPLAY Variables (Change only if desired REPLAY is different from Default) +# ---------------------------------------------------------------------------------- +# REPLAY_P: YES or NO # (Default: YES) +# REPLAY_U: YES or NO # (Default: YES) +# REPLAY_V: YES or NO # (Default: YES) +# REPLAY_T: YES or NO # (Default: YES) +# REPLAY_QV: YES or NO # (Default: YES) +# REPLAY_O3: YES or NO # (Default: YES) +# REPLAY_TS: YES or NO # (Default: NO) +# +# Regular REPLAY Remapping and Blending Variables +# ----------------------------------------------- +# REPLAY_REMAP: YES # Default = YES, Remap ANA Data to BKG Topography +# REPLAY_DAMPBEG: 100.0 # Default = 1, Linearly Damp Increments between DAMPBEG & DAMPEND (Pascals) +# REPLAY_DAMPEND: 5000.0 # Default = 1, Linearly Damp Increments between DAMPBEG & DAMPEND (Pascals) +# REPLAY_SHUTOFF: 21600 # ShutOff Replay after 6-hours of Integration +# REPLAY_WINDFIX: YES # Apply windfix to force vertically-integrated analysis divergence increment to zero +# +# REPLAY_BLEND_QV_AT_TP: .FALSE. # Default = FALSE, Blend QV to BKG upwards from tropopause +# +# +############################################################################################## +#### Intermittent Replay Options #### +#### #### +#### Intermittent: Within this mode two possibilities are available: #### +#### 1) Replay to full field: #### +#### Replays to an existing Analysis by "Dump & Splash". #### +#### RePlay File: %s.bkg.eta.%y4%m2%d2_%h2z.NCSUFFIX #### +#### Note: BKG.ETA (hour-3) files are used since they #### +#### contain the previous full analysis increment and are #### +#### well balanced. Do not use DAMP parameters. #### +#### RePlay Name Default: uwnd,vwnd,theta,sphu,ps,delp,ozone #### +#### REPLAY_GRID Options: D-GRID (Default), A-GRID #### +#### REPLAY_TVAR Options: THETAV (Default), THETA, TV, T #### +#### 2) Replay to an increment: (only cubed-dynamics for now) #### +#### Replay to an existing Analysis Increment as e.g, #### +#### RePlay File: %s.inc.eta.%y4%m2%d2_%h2z.NCSUFFIX #### +#### You much as specify REPLAY_IM and REPLAY_JM as #### +#### well as set REPLAY_TYPE: Incremental; this is #### +#### in addition to the MODE Intermittent. In some cases #### +#### you might set the parameter REPLAY_REF_TGAP to be #### +#### equal to RUN_DT (but in HHMMSS) to avoid increment #### +#### being taken one DT out of sync (this can also be used #### +#### in (1) above). #### +#### #### +#### Note: RePlay Blending Options Currently Pertain #### +#### to Intermittent Mode (see FVdycore_GridCompMod.F90) #### +#### #### +############################################################################################## + +##REPLAY_TYPE: Incremental +##REPLAY_FILE: C590a.inc.eta.%y4%m2%d2_%h2z.nc4 +##REPLAY_IM: 576 +##REPLAY_JM: 361 +##REPLAY_REF_DATE: >>>ANADATE<<< +##REPLAY_REF_TIME: >>>ANATIME<<< +##REPLAY_REF_TGAP: 001500 + +#REPLAY_MODE: Intermittent +#REPLAY_FILE: /discover/nobackup/projects/gmao/iesa/aerosol/Data/MERRA/iReplay/576x361/Y%y4/M%m2/d5_merra_jan98.bkg.eta.%y4%m2%d2_%h2z.nc4 +#REPLAY_IM: 576 # Required for Intermittent Replay on Cube +#REPLAY_JM: 361 # Required for Intermittent Replay on Cube + +#REPLAY_GRID: A-GRID # (!! For Intermittent Replay Only !!) Standard Options: D-GRID (Default), A-GRID +#REPLAY_TSNAME: NULL +#REPLAY_UNAME: u +#REPLAY_VNAME: v +#REPLAY_TNAME: tv +#REPLAY_TVAR: TV # Standard Options: THETAV (Default), THETA, TV, T + +#REPLAY_REMAP: NO # Standard Options: NO - Intermittent Replay (Cube Only) + +#REPLAY_BLEND: 0 # Standard Option: 0 - no blending +#REPLAY_BLEND_P_ABOVE: 10.0 # Standard Option: 10 Pa - highest of the two blending pressure levels +#REPLAY_BLEND_P_BELOW: 100.0 # Standard Option: 100 Pa - lowest of the two blending pressure levels +#REPLAY_BLEND_QV_AT_TP: .FALSE. # Default = .FALSE. Blend QV to BKG upwards from tropopause + + +############################################################################################## +#### REPLAY PRECIPITATION #### +############################################################################################## +# +# REPLAY PRECIP Parameters +# ------------------------ +# To REPLAY to CMAP-based precip files, you must symbolically link into your work area the datastreams from MERRA_LAND: +# +# Option 1) CMAP-CPCU Corrected (Used for NCA Project) +# ---------------------------------------------------- +# /bin/ln -s /gpfsm/dnb51/projects/p15/iau/merra_land/precip_CPCU-CMAP_corrected_MERRA/GEOSdas-2_1_4 ExtData/PCP +# +# Then, you must replace the token after PRECIP_FILE with the proper datastream for the desired years: +# ---------------------------------------------------------------------------------------------------- +# Years 1978-1993: d5_merra_jan79/diag/Y%y4/d5_merra_jan79.tavg1_2d_lfo_Nx_corr.%y4%m2%d2_%h230z.nc (Currently Not ONLINE) +# Years 1988-2001: d5_merra_jan89/diag/Y%y4/d5_merra_jan89.tavg1_2d_lfo_Nx_corr.%y4%m2%d2_%h230z.nc (Currently Not ONLINE) +# Years 1999-2014: d5_merra_jan98/diag/Y%y4/d5_merra_jan98.tavg1_2d_lfo_Nx_corr.%y4%m2%d2_%h230z.nc +# --------------- +# +# Option 2) CMAP-GPCP Corrected (from MERRA-Land) +# ----------------------------------------------- +# /bin/ln -s /discover/nobackup/projects/gmao/share/gmao_ops/fvInput/merra_land/precip_CPCUexcludeAfrica-CMAP_corrected_MERRA/GEOSdas-2_1_4 ExtData/PCP +# +# Then, you must replace the token after PRECIP_FILE with the proper datastream: +# ----------------------------------------------------------------------------------------------------------- +# Years 1979-2014: d5_merra/Y%y4/M%m2/d5_merra.tavg1_2d_lfo_Nx_corr.%y4%m2%d2_%h230z.nc +# --------------- +# +# Possible REPLAY PRECIP Files: +# ----------------------------- +#PRECIP_FILE: ExtData/PCP/@PRECIP_FILE +# +# Latitudinal Tapering between 42.5 and 62.5 degrees mimics NCEP's approach of using GCM-based precip at high latitudes +# -------------------- +#USE_PP_TAPER: 1 + +############################################################################################## +#### Land Surface Model #### +############################################################################################## + +# Option to Diagnose Precipitation Types for Land Surface +# ------------------------------------------------------------ +DIAGNOSE_PRECIP_TYPE: FALSE + +# Choice for Land Surface Model +# 1 : Catchment +# 2 : CatchmentCNCLM40 +# 3 : CatchmentCNCLM45 +# ------------------------------------------------------------ +LSM_CHOICE: 1 + +# Apply increments from LDAS? +# 0 : no (default) +# 1 : yes +# ------------------------------------------------------------ +#LDAS_INCR: 0 + +# Name of file containing Surface GridComp resource parameters +# ------------------------------------------------------------ +# SURFRC: GEOS_SurfaceGridComp.rc + + +# **************************************************************** +# ******* REQUIRES MAJOR CLEAN-UP ACROSS SEVERAL GRIDCOMPs ******* +# ******* (retained to facilitate this cleanup in future) ******* +# ******* IMPORTANT: This is merely for future reference ******* +# ******* The model reads USE_CNNEE from CO2_GridComp.rc ******* +# ******* not from this file. ******* +# Atmosphere-Land CO2 coupling +# ---------------------------- +# USE_CNNEE: 0 # options : 0 (default); 1 (Chem uses NNEE from CatchmentCN, NOTE you must add USE_CNNEE: 1 to CO2_GridComp.rc and AMIP/CO2_GridComp.rc, +# in GOCART/ESMF/GOCART_GridComp/CO2_GridComp/ before you build the model.) +# +# **************************************************************** + +############################################################################################## +############################################################################################## + +# IAU and In-Line BIAS Correction Parameters +# ---------------------------------------------------------------------------------- +# AGCM_IMPORT = IAU Analysis Increment +# AGCM_INTERNAL = BIAS Correction Increment: BIAS(n+1) = ALPHA*IAU(n) + BETA*BIAS(n) +# ---------------------------------------------------------------------------------- + +#AGCM_IMPORT_RESTART_FILE: agcm_import_rst + +#AGCM_INTERNAL_RESTART_FILE: agcm_internal_rst +#AGCM_INTERNAL_CHECKPOINT_FILE: agcm_internal_checkpoint +#AGCM_INTERNAL_CHECKPOINT_TYPE: default + +#AGCM_ALPHA: 0.000 +#AGCM_BETA: 1.000 + +MAPL_ENABLE_BOOTSTRAP: YES + +# Required AGCM Model Restart Files +# --------------------------------- +DYN_INTERNAL_RESTART_FILE: fvcore_internal_rst +DYN_INTERNAL_CHECKPOINT_FILE: fvcore_internal_checkpoint +DYN_INTERNAL_CHECKPOINT_TYPE: default +DYN_INTERNAL_HEADER: 1 + +LAKE_INTERNAL_RESTART_FILE: lake_internal_rst +LAKE_INTERNAL_CHECKPOINT_FILE: lake_internal_checkpoint +LAKE_INTERNAL_CHECKPOINT_TYPE: default + +LANDICE_INTERNAL_RESTART_FILE: landice_internal_rst +LANDICE_INTERNAL_CHECKPOINT_FILE: landice_internal_checkpoint +LANDICE_INTERNAL_CHECKPOINT_TYPE: default + +CATCH_INTERNAL_RESTART_FILE: catch_internal_rst +CATCH_INTERNAL_CHECKPOINT_FILE: catch_internal_checkpoint +CATCH_INTERNAL_CHECKPOINT_TYPE: default + +CATCHCNCLM40_INTERNAL_RESTART_FILE: catchcn_internal_rst +CATCHCNCLM40_INTERNAL_CHECKPOINT_FILE: catchcn_internal_checkpoint +CATCHCNCLM40_INTERNAL_CHECKPOINT_TYPE: default + +CATCHCNCLM45_INTERNAL_RESTART_FILE: catchcn_internal_rst +CATCHCNCLM45_INTERNAL_CHECKPOINT_FILE: catchcn_internal_checkpoint +CATCHCNCLM45_INTERNAL_CHECKPOINT_TYPE: default + +MOIST_INTERNAL_RESTART_FILE: moist_internal_rst +MOIST_INTERNAL_CHECKPOINT_FILE: moist_internal_checkpoint +MOIST_INTERNAL_CHECKPOINT_TYPE: default + + +# Boot-Strapable AGCM Model Restart Files +# --------------------------------------- +AIAU_IMPORT_RESTART_FILE: aiau_import_rst +AIAU_IMPORT_CHECKPOINT_FILE: aiau_import_checkpoint +AIAU_IMPORT_CHECKPOINT_TYPE: default + +GWD_IMPORT_RESTART_FILE: gwd_import_rst +GWD_IMPORT_CHECKPOINT_FILE: gwd_import_checkpoint +GWD_IMPORT_CHECKPOINT_TYPE: default + +MOIST_IMPORT_RESTART_FILE: moist_import_rst +MOIST_IMPORT_CHECKPOINT_FILE: moist_import_checkpoint +MOIST_IMPORT_CHECKPOINT_TYPE: default + +SURFACE_IMPORT_RESTART_FILE: surf_import_rst +SURFACE_IMPORT_CHECKPOINT_FILE: surf_import_checkpoint +SURFACE_IMPORT_CHECKPOINT_TYPE: default + +SOLAR_INTERNAL_RESTART_FILE: solar_internal_rst +SOLAR_INTERNAL_CHECKPOINT_FILE: solar_internal_checkpoint +SOLAR_INTERNAL_CHECKPOINT_TYPE: default + +IRRAD_INTERNAL_RESTART_FILE: irrad_internal_rst +IRRAD_INTERNAL_CHECKPOINT_FILE: irrad_internal_checkpoint +IRRAD_INTERNAL_CHECKPOINT_TYPE: default + +TURBULENCE_INTERNAL_RESTART_FILE: turb_internal_rst +TURBULENCE_INTERNAL_CHECKPOINT_FILE: turb_internal_checkpoint +TURBULENCE_INTERNAL_CHECKPOINT_TYPE: default + +TURBULENCE_IMPORT_RESTART_FILE: turb_import_rst +TURBULENCE_IMPORT_CHECKPOINT_FILE: turb_import_checkpoint +TURBULENCE_IMPORT_CHECKPOINT_TYPE: default + +PCHEM_INTERNAL_RESTART_FILE: pchem_internal_rst +PCHEM_INTERNAL_CHECKPOINT_FILE: pchem_internal_checkpoint +PCHEM_INTERNAL_CHECKPOINT_TYPE: default + +#H2O_INTERNAL_RESTART_FILE: h2o_internal_rst +#H2O_INTERNAL_CHECKPOINT_FILE: h2o_internal_checkpoint +#H2O_INTERNAL_CHECKPOINT_TYPE: default + +# Chemistry/AEROSOL Model Restart Files +# ------------------------------------- +GOCART_IMPORT_RESTART_FILE: gocart_import_rst +GOCART_IMPORT_CHECKPOINT_FILE: gocart_import_checkpoint +GOCART_IMPORT_CHECKPOINT_TYPE: default + +GOCART_INTERNAL_RESTART_FILE: gocart_internal_rst +GOCART_INTERNAL_CHECKPOINT_FILE: gocart_internal_checkpoint +GOCART_INTERNAL_CHECKPOINT_TYPE: default + +GOCART.data_INTERNAL_RESTART_FILE: gocartdata_internal_rst +GOCART.data_INTERNAL_CHECKPOINT_FILE: gocartdata_internal_checkpoint +GOCART.data_INTERNAL_CHECKPOINT_TYPE: default + +DU_INTERNAL_RESTART_FILE: du_internal_rst +DU_INTERNAL_CHECKPOINT_FILE: du_internal_checkpoint +DU_INTERNAL_CHECKPOINT_TYPE: default + +SS_INTERNAL_RESTART_FILE: ss_internal_rst +SS_INTERNAL_CHECKPOINT_FILE: ss_internal_checkpoint +SS_INTERNAL_CHECKPOINT_TYPE: default + +CA.oc_INTERNAL_RESTART_FILE: caoc_internal_rst +CA.oc_INTERNAL_CHECKPOINT_FILE: caoc_internal_checkpoint +CA.oc_INTERNAL_CHECKPOINT_TYPE: default + +CA.bc_INTERNAL_RESTART_FILE: cabc_internal_rst +CA.bc_INTERNAL_CHECKPOINT_FILE: cabc_internal_checkpoint +CA.bc_INTERNAL_CHECKPOINT_TYPE: default + +CA.br_INTERNAL_RESTART_FILE: cabr_internal_rst +CA.br_INTERNAL_CHECKPOINT_FILE: cabr_internal_checkpoint +CA.br_INTERNAL_CHECKPOINT_TYPE: default + +NI_INTERNAL_RESTART_FILE: ni_internal_rst +NI_INTERNAL_CHECKPOINT_FILE: ni_internal_checkpoint +NI_INTERNAL_CHECKPOINT_TYPE: default + +SU_INTERNAL_RESTART_FILE: su_internal_rst +SU_INTERNAL_CHECKPOINT_FILE: su_internal_checkpoint +SU_INTERNAL_CHECKPOINT_TYPE: default + +#CARMA_INTERNAL_RESTART_FILE: carma_internal_rst +#CARMA_INTERNAL_CHECKPOINT_FILE: carma_internal_checkpoint +#CARMA_INTERNAL_CHECKPOINT_TYPE: default + +##STRATCHEM_INTERNAL_RESTART_FILE: stratchem_internal_rst +##STRATCHEM_INTERNAL_CHECKPOINT_FILE: stratchem_internal_checkpoint +##STRATCHEM_INTERNAL_CHECKPOINT_TYPE: default + +##STRATCHEM_IMPORT_RESTART_FILE: stratchem_import_rst +##STRATCHEM_IMPORT_CHECKPOINT_FILE: stratchem_import_checkpoint +##STRATCHEM_IMPORT_CHECKPOINT_TYPE: default + +##GMICHEM_INTERNAL_RESTART_FILE: gmichem_internal_rst +##GMICHEM_INTERNAL_CHECKPOINT_FILE: gmichem_internal_checkpoint +##GMICHEM_INTERNAL_CHECKPOINT_TYPE: default + +##GMICHEM_IMPORT_RESTART_FILE: gmichem_import_rst +##GMICHEM_IMPORT_CHECKPOINT_FILE: gmichem_import_checkpoint +##GMICHEM_IMPORT_CHECKPOINT_TYPE: default + +GEOSCHEMCHEM_INTERNAL_RESTART_FILE: geoschemchem_internal_rst +GEOSCHEMCHEM_INTERNAL_CHECKPOINT_FILE: geoschemchem_internal_checkpoint +GEOSCHEMCHEM_INTERNAL_CHECKPOINT_TYPE: default + +GEOSCHEMCHEM_IMPORT_RESTART_FILE: geoschemchem_import_rst +GEOSCHEMCHEM_IMPORT_CHECKPOINT_FILE: geoschemchem_import_checkpoint +GEOSCHEMCHEM_IMPORT_CHECKPOINT_TYPE: default + +#MAM_INTERNAL_RESTART_FILE: mam_internal_rst +#MAM_INTERNAL_CHECKPOINT_FILE: mam_internal_checkpoint +#MAM_INTERNAL_CHECKPOINT_TYPE: default + +ACHEM_INTERNAL_RESTART_FILE: achem_internal_rst +ACHEM_INTERNAL_CHECKPOINT_FILE: achem_internal_checkpoint +ACHEM_INTERNAL_CHECKPOINT_TYPE: default + +TR_INTERNAL_RESTART_FILE: tr_internal_rst +TR_INTERNAL_CHECKPOINT_FILE: tr_internal_checkpoint +TR_INTERNAL_CHECKPOINT_TYPE: default + +TR_IMPORT_RESTART_FILE: tr_import_rst +TR_IMPORT_CHECKPOINT_FILE: tr_import_checkpoint +TR_IMPORT_CHECKPOINT_TYPE: default + +HEMCO_INTERNAL_RESTART_FILE: hemco_internal_rst +HEMCO_INTERNAL_CHECKPOINT_FILE: hemco_internal_checkpoint +HEMCO_INTERNAL_CHECKPOINT_TYPE: default + +HEMCO_IMPORT_RESTART_FILE: hemco_import_rst +HEMCO_IMPORT_CHECKPOINT_FILE: hemco_import_checkpoint +HEMCO_IMPORT_CHECKPOINT_TYPE: default + +#OH_INTERNAL_RESTART_FILE: oh_internal_rst +#OH_INTERNAL_CHECKPOINT_FILE: oh_internal_checkpoint +#OH_INTERNAL_CHECKPOINT_TYPE: default + +#OH_IMPORT_RESTART_FILE: oh_import_rst +#OH_IMPORT_CHECKPOINT_FILE: oh_import_checkpoint +#OH_IMPORT_CHECKPOINT_TYPE: default + +# OCEAN Model Restart Files +# ------------------------- +SALTWATER_IMPORT_RESTART_FILE: saltwater_import_rst +SALTWATER_IMPORT_CHECKPOINT_FILE: saltwater_import_checkpoint +SALTWATER_IMPORT_CHECKPOINT_TYPE: default + +OPENWATER_INTERNAL_RESTART_FILE: openwater_internal_rst +OPENWATER_INTERNAL_CHECKPOINT_FILE: openwater_internal_checkpoint +OPENWATER_INTERNAL_CHECKPOINT_TYPE: default + +SEAICETHERMO_INTERNAL_RESTART_FILE: seaicethermo_internal_rst +SEAICETHERMO_INTERNAL_CHECKPOINT_FILE: seaicethermo_internal_checkpoint +SEAICETHERMO_INTERNAL_CHECKPOINT_TYPE: default + + + + +# Boundary Datasets +# ----------------- +TOPO_MEAN_FILE: topo_dynave.data +TOPO_GWDVAR_FILE: topo_gwdvar.data +TOPO_TRBVAR_FILE: topo_trbvar.data + +LAI_FILE: lai.data +GREEN_FILE: green.data +NDVI_FILE: ndvi.data +TILING_FILE: tile.bin +VISDF_FILE: visdf.dat +NIRDF_FILE: nirdf.dat +LNFM_FILE: lnfm.data + +VEGDYN_INTERNAL_RESTART_FILE: vegdyn.data + +KPAR_FILE: SEAWIFS_KPAR_mon_clim.data + + +# AeroChem Environment +# -------------------- + OX_RELAXTIME: 259200. # Standard Options: GCM: 259200., DAS: 0.000 + CH4_RELAXTIME: 259200. + N2O_RELAXTIME: 259200. + CFC11_RELAXTIME: 259200. + CFC12_RELAXTIME: 259200. + HCFC22_RELAXTIME: 259200. + H2O_RELAXTIME: 259200. + OX_FRIENDLIES: ANALYSIS:DYNAMICS:TURBULENCE:MOIST + CH4_FRIENDLIES: DYNAMICS:TURBULENCE:MOIST + N2O_FRIENDLIES: DYNAMICS:TURBULENCE:MOIST + CFC11_FRIENDLIES: DYNAMICS:TURBULENCE:MOIST + CFC12_FRIENDLIES: DYNAMICS:TURBULENCE:MOIST + H2O_FRIENDLIES: DYNAMICS:TURBULENCE:MOIST +HCFC22_FRIENDLIES: DYNAMICS:TURBULENCE:MOIST + pchem_clim: species.data + pchem_clim_years: 228 + +# Age-of-Air Parameters +# --------------------- +#AOA_FRIENDLIES: DYNAMICS:TURBULENCE:MOIST + +# Set RADIATION Parameterizations +# ------------------------------- +USE_RRTMG_IRRAD: 1.0 + +USE_RRTMG_SORAD: 1.0 +ISOLVAR: 2 +USE_NRLSSI2: .TRUE. +SOLAR_CYCLE_FILE_NAME: ExtData/g5gcm/solar/NRLSSI2.v2020.txt + +NUM_BANDS: 30 + +#USE_RRTMGP_IRRAD: 1.0 +#USE_RRTMGP_SORAD: 1.0 +#RRTMGP_DATA_LW: /discover/nobackup/pnorris/RRTMGP-data.v1.5/rrtmgp/data/rrtmgp-data-lw-g128-210809.nc +#RRTMGP_DATA_SW: /discover/nobackup/pnorris/RRTMGP-data.v1.5/rrtmgp/data/rrtmgp-data-sw-g112-210809.nc +#RRTMGP_CLOUD_OPTICS_COEFFS_LW: /discover/nobackup/pnorris/RRTMGP-data.v1.5/extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-lw.nc +#RRTMGP_CLOUD_OPTICS_COEFFS_SW: /discover/nobackup/pnorris/RRTMGP-data.v1.5/extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-sw.nc + +DIURNAL_BIOMASS_BURNING: yes + + RATS_PROVIDER: PCHEM # options: PCHEM, GMICHEM, STRATCHEM (Radiatively active tracers) + AERO_PROVIDER: GOCART2G # options: GOCART2G, MAM, none (Radiatively active aerosols) +ANALYSIS_OX_PROVIDER: PCHEM # options: PCHEM, GMICHEM, STRATCHEM, GOCART + + +# Flag for real-time forecasts (persisted SST) IS_FCST: 1 (AMIP-Style Default: 0) +# ------------------------------------------------------------------------------- + IS_FCST: 0 + + +# Time step for aerosol assimilation (GAAS) +# ----------------------------------------- + GAAS_DT: 10800 # 3-hourly + +# DATAOCEAN Parameters for AMIP-Style Run +# ---------------------------------------- + DATA_SST_FILE: sst.data + DATA_FRT_FILE: fraci.data + MIN_SEAICE_DEPTH: 0.07 + MAX_SEAICE_DEPTH: 0.07 + TAU_SIT: 86400 + +# To compute skin SST over water (or to use SST Analysis Increment) set values to 1 +# --------------------------------------------------------------------------------- +USE_SKIN_LAYER: 1 + ANALYZE_TS: 0 + +# Model Tuning Parameters (For CMIP5 recommended SOLAR_CONSTANT and CO2 values, use -1) +# ------------------------------------------------------------------------------------- +SOLAR_CONSTANT: -1 +CO2: -1 +SOLAR_LB_MAX_PASSES: 10 + + +# Flags for SATSIM Output +# ----------------------- +USE_SATSIM: 0 +USE_SATSIM_ISCCP: 1 +USE_SATSIM_MODIS: 0 +USE_SATSIM_RADAR: 0 +USE_SATSIM_LIDAR: 0 +USE_SATSIM_MISR: 0 + + + + +# For running MOM5 coupled model in dual ocean mode, uncomment three lines below, +# make sure that regular replay is enabled, proper PRECIP_FILE is chosen, +# sst.data and fraci.data are pointing to read forcing files on tripolar grid, +# the run starts at 21z/03z/09z/15z, +# HISTORY.rc collections have proper ref_time field +# --------------------------------------------------------------------------- + diff --git a/src/swell/configuration/jedi/interfaces/geos_cf/namelists/AGCM_c90.rc b/src/swell/configuration/jedi/interfaces/geos_cf/namelists/AGCM_c90.rc new file mode 100644 index 000000000..96b854b3e --- /dev/null +++ b/src/swell/configuration/jedi/interfaces/geos_cf/namelists/AGCM_c90.rc @@ -0,0 +1,775 @@ + +# Atmospheric Model Configuration Parameters +# ------------------------------------------ + + NX: 12 + NY: 72 + +IOSERVER_NODES: 0 + + + AGCM_IM: 90 + AGCM_JM: 540 + AGCM_LM: 72 +AGCM_GRIDNAME: PE90x540-CF + + AGCM.GRID_TYPE: Cubed-Sphere + AGCM.GRIDNAME: PE90x540-CF + AGCM.NF: 6 + AGCM.LM: 72 + AGCM.IM_WORLD: 90 + +DYCORE: FV3 + + SOLAR_DT: 3600 + IRRAD_DT: 3600 +SATSIM_DT: 1800 + +SOLARAvrg: 0 +IRRADAvrg: 0 + +EOT: .TRUE. +ORBIT_ANAL2B: .TRUE. + +########################################################### +# Flag for definition of the convection scheme +# The options are RAS or GF +# ---------------------------------------- +CONVPAR_OPTION: GF + +# Override default aerosol convective scavenging and use dz method +USE_TRACER_SCAVEN: 1 + +# Flag to activated scale-awareness approach (0 false, 1 true) +USE_SCALE_DEP: 1 + +# Flag to activated diurnal cycle closure (0 false, 1 true) +DICYCLE: 1 + +# Convective plumes to be activated (1 true, 0 false) +# ---------------------------------------- +DEEP: 1 +SHALLOW: 0 +CONGESTUS: 1 + +# UW shallow cumulus settings +DOSHLW: 1 + +# Choice for the closures: +# ---------------------------------------- +# deep : 0 ensemble (all) , 1 GR, 4 ll omega, 7 moist conv, 10 PB +# shallow : 0 ensemble (Wstar/BLQE) , 1 Wstar, 4 heat-engine or 7 BLQE +# congestus: 0 ensemble (Wstar/BLQE/PB), 1 Wstar, 2 BLQE, 3 PB, 4 PB_BL +CLOSURE_DEEP:0 +CLOSURE_SHALLOW:7 +CLOSURE_CONGESTUS:3 + +# GWD Parameterization +# -------------------- + +# if .FALSE., use GEOS GWD code (default); .TRUE., use new NCAR GWD code +USE_NCAR_GWD: .FALSE. + +# This is only used if USE_NCAR_GWD is .TRUE. +BERES_FILE_NAME: ExtData/g5gcm/gwd/newmfspectra40_dc25.nc + +# Ocean Model Configuration Parameters +# ------------------------------------ + OGCM.GRID_TYPE: LatLon + OGCM.GRIDNAME: PE360x180-DE + OGCM.IM_WORLD: 360 + OGCM.JM_WORLD: 180 + OGCM.LM: 34 + + OGCM.POLE: 'PE' + OGCM.DATELINE: 'DE' + +OGCM_RUN_DT: 3600 + +############################################################################################## +#### #### +#### SST REMAPPING #### +#### Comparing Grid Resolutions of GRID_ocean and GRID_atmos: #### +#### #### +#### IF( GRID_ocean is equal resolution to GRID_atmos ) THEN #### +#### INTERPOLATE_SST = 0 ! Conservatively BIN GRID_ocean to GRID_atmos #### +#### ELSE IF ( GRID_ocean is higher resolution than GRID_atmos ) THEN #### +#### INTERPOLATE_SST = 0 ! Conservatively BIN GRID_ocean to GRID_atmos #### +#### ELSE ( GRID_ocean is lower resolution than GRID_atmos ) #### +#### INTERPOLATE_SST = 1 ! Linearly Interpolate GRID_ocean to GRID_atmos #### +#### ENDIF #### +#### #### +############################################################################################## + +# INTERPOLATE_SST: 0 or 1 # (Default based on comparison of GRID_ocean and GRID_atmos) + +# Print Resource Parameters (0: Non-Default values, 1: ALL values) +#----------------------------------------------------------------- +PRINTRC: 1 + +# Set the number of parallel I/O processes to use when +# RESTART_TYPE and or CHECKPOINT_TYPE are set to pbinary or pnc4 +#--------------------------------------------------------------- +PARALLEL_READFORCING: 0 +NUM_READERS: 1 +NUM_WRITERS: 1 + +# Write restarts by oserver (Default: NO) +WRITE_RESTART_BY_OSERVER: NO + +# Active observer when desired +# ---------------------------- +BKG_FREQUENCY: 0 + +# Resolution of state passed to atmos analysis +# -------------------------------------------- +ANA_GRIDNAME: PC90x540-DC +ANA_LM: 72 + +# Restart Record Parameters +# ------------------------- +RECORD_FINAL: NO +RECORD_FREQUENCY: 000000 000000 +RECORD_REF_DATE: >>SWELL_FC6H_DATE<< 21220215 +RECORD_REF_TIME: >>SWELL_FC6H_H<< 120000 + +################################################################################################### +#### DAS/Replay Options #### +#### ------------------ #### +#### #### +#### The REPLAY mechanism operates within 2 distinct "flavors": #### +#### 1) Exact (Uses Archived Increment Files) #### +#### 2) Regular (Uses Archived Analysis/Assimilation Files) #### +#### #### +#### Exact Replays identically reproduce (bit-for-bit) a previous GEOS DAS experiment #### +#### by simply using the archived IAU forcing from the DAS experiment. #### +#### For these cases, only the CORRECTOR step is employed and is, therefore, as #### +#### efficient as a stand-alone model run. #### +#### #### +#### In order to guarantee reproducibility, the model and its BUILD parameters #### +#### (Compilers and Options) as well as all INPUT data must be identical to the #### +#### original DAS experiment. This type of REPLAY is useful when producing #### +#### additional passive, diagnostic data, or when the original data is lost. #### +#### #### +#### #### +#### Regular Replays are used to mimic the original IAU methodology, i.e., both the #### +#### PREDICTOR and the CORRECTOR steps are employed. The key difference being #### +#### that the Analysis is based on archived datasets. These Analyses may be from #### +#### the GEOS DAS system, or from any other source that is written using the #### +#### appropriate GEOS DAS ana.eta data format. #### +#### #### +#### Regular Replays will reproduce data (bit-for-bit) from the original source #### +#### Analysis experiment provided all model, input data, and Predictor/Corrector #### +#### configurations are identical to the original experiment. Otherwise, #### +#### differences in the model and/or IAU procedure will produce changes to the #### +#### assimilation and forecasts which may improve or degrade the results. #### +#### #### +#### #### +#### Note: The Operational GEOS DAS always operates in an "Exact" mode since the IAU #### +#### Increments are produced off-line, separate from the GCM and GSI executables, #### +#### based on ana.eta and bkg.eta files. Thus, the increments produces from these #### +#### files are REPLAYed in an "Exact" manner. #### +#### #### +#### #### +#### Exact Replay Details: #### +#### --------------------- #### +#### Exact Replays perform the CORRECTOR step by integrating the model forward in #### +#### time forced by the IAU Analysis increments. In MERRA-2, a single Analysis was #### +#### computed at the center of the Assimilation Cycle (6-hrs). Thus, as an example, #### +#### the cycle between 21z (or -03z) and +03z used the single Analysis at the synoptic #### +#### time of 00z. In contrast, the 4D-EnVar system produces 7 hourly Analyses (-03z, #### +#### -02z, -01z, 00z, +01z, +02z, +03z). The IAU sequence currently employed uses #### +#### the 3 Analyses defined at -03z, 00z, +03z for its IAU forcing. Both systems #### +#### may be described using the following parameters: #### +#### #### +#### CORRECTOR_DURATION nnnnnn (Duration -in seconds- of Corrector step) #### +#### REPLAY_MODE Exact #### +#### REPLAY_FILE %s.agcm_import_rst.%y4%m2%d2_%h2z.bin #### +#### REPLAY_FILE_FREQUENCY nnnnnn (Default: CORRECTOR_DURATION) #### +#### REPLAY_FILE_REFERENCE_TIME HHMMSS (Default: 000000) #### +#### #### +#### Thus, MERRA-2 => CORRECTOR_DURATION = 21600 #### +#### REPLAY_FILE_FREQUENCY = 21600 #### +#### REPLAY_FILE_REFERENCE_TIME = 000000 #### +#### #### +#### 4D_EnVar => CORRECTOR_DURATION = 21600 #### +#### REPLAY_FILE_FREQUENCY = 10800 #### +#### REPLAY_FILE_REFERENCE_TIME = 000000 #### +#### #### +#### Note: the Digital Filter (if used) is configured to provide its maximum impact #### +#### centered at the time(s) of the Analyses (00z for MERRA-2, and -03z, 00z, +03z #### +#### for 4D-EnVar). #### +#### #### +#### #### +#### Regular Replay Details: #### +#### ----------------------- #### +#### Regular Replay involves both the PREDICTOR and the CORRECTOR steps. If a single #### +#### Analysis is used within the CORRECTOR window (e.g., as in MERRA-2), the PREDICTOR #### +#### duration would be defined as the time from the beginning of the CORRECTOR step to #### +#### the time of the Analysis (e.g., 3-hours for the MERRA-2 system). However, if #### +#### multiple Analyses are used within the CORRECTOR window, the PREDICTOR duration #### +#### would be defined as the time from the beginning of the CORRECTOR step to the time #### +#### of the Last Analysis. Therefore, the length of the PREDICTOR step is computed #### +#### based on the FREQUENCY and REFERENCE TIME of the REPLAYed Analysis/Assimilation #### +#### files. Once the Increment file(s) are created, the model rewinds to the beginning #### +#### of the CORRECTOR step and performs an EXACT Replay to the just-produced files. #### +#### #### +#### #### +#### Replay09 File Details: #### +#### ---------------------- #### +#### The current 4D-EnVar system, as previously noted, produces 7 hourly Analyses: #### +#### (-03z, -02z, -01z, 00z, +01z, +02z, +03z) for each 6-hour assimilation window #### +#### centered around the 4 synoptic times of 00z, 06z, 12z, and 18z. We see that the #### +#### last Analysis (+03z) associated with each synoptic time will be over-ridden by #### +#### the first Analyiss (-03z) associated with synoptic time of the next assimilation #### +#### window. To prevent these over-ridden files from being lost, the GEOS-5 DAS #### +#### archives the (+03z) data with an appended "09" characterization (e.g., bkg09.eta, #### +#### ana09.eta, agcm09_import). Therefore, when running REPLAY, care must be given #### +#### to identify the Replay09 files if needed. A separate REPLAY_FILE09 key word is #### +#### used for this purpose, and is only utilized if the REPLAY configuration warrants. #### +#### #### +#### #### +#### Regular Replay Time Interpolation: #### +#### ---------------------------------- #### +#### In some instances the USER might wish to create IAU Increments at a frequency #### +#### greater than the frequency of the target analysis. For those cases additional #### +#### parameters are introduced and used in coordination with the standard REPLAY #### +#### parameters: #### +#### #### +#### Standard: REPLAY_FILE_FREQUENCY = nnnnn #### +#### REPLAY_FILE_REFERENCE_TIME = HHMMSS #### +#### Additional: MKIAU_FREQUENCY = nnnnn #### +#### MKIAU_REFERENCE_TIME = HHMMSS #### +#### REPLAY_TIME_INTERP = LINEAR (Default) or CUBIC #### +#### #### +#### When the additional parameters are invoked, the system time-interpolates the #### +#### REPLAY_FILE analyses to the times referenced by the MKIAU variables to create #### +#### the associated increment files. The time-interpolation is done via a LINEAR #### +#### or CUBIC scheme. #### +#### #### +################################################################################################### + +# ASSIMILATION_CYCLE: nnnnnn # (Default: 21600) +# IAU_DIGITAL_FILTER: YES or NO # (Default: YES ) + +# Typical MERRA-2 Regular REPLAY Configuration +# -------------------------------------------- + REPLAY_ANA_EXPID: >>SWELL_FP_EXP<< + REPLAY_ANA_LOCATION: >>SWELL_SCRATCHDIR<< + REPLAY_MODE: Regular + REPLAY_FILE: >>SWELL_FP_EXP<<.ana.eta.%y4%m2%d2_%h200z.nc4 + + #REPLAY_ANA_EXPID: d5294_geosit_jan18 + #REPLAY_ANA_LOCATION: /home/dao_ops/d5294_geosit_jan18/run/.../archive + #REPLAY_MODE: Regular + #REPLAY_FILE: ana/Y%y4/M%m2/d5294_geosit_jan18.bkg.eta.%y4%m2%d2_%h200z.nc4 + +# 4DIAU (recreate analysis tendency on the fly) +# --------------------------------------------- + +# Exact REPLAY Mode for 4D-IAU +# ---------------------------- + +#################################################################################################### +#### Miscellaneous Exact/Regular REPLAY Parameters #### +#### --------------------------------------------- #### +#### #### +#### REPLAY FILE MUST be on an A-Grid! #### +#### #### +#### REPLAY Variable Defaults: p,u,v,t,qv,o3 #### +#### REPLAY Variables are set to either: YES, NO, or a character_string NAME. #### +#### The NAME is used as a means of creating an ALIAS for the REPLAY variable. #### +#### An ALIAS is required when the REPLAY FILE contains a variable name NOT included #### +#### in our standard list. (e.g., REPLAY_T: temperature) #### +#### #### +#### NOTE: When using an ALIAS for REPLAY_T, you must also supply the REPLAY_T_TYPE #### +#### ----- REPLAY_T_TYPE: T # Options: T,TV,TH,THV #### +#### #### +#### REPLAY Variables may be disabled by setting resource parameter to: NO #### +#### (E.g., REPLAY_QV: NO to disable REPLAY of Moisture). #### +#### #### +#### #### +#################################################################################################### +# +# BKG2ANACNSRV: 0 or 1 # (Defaults to 0:BiLinear Interpolation. Note: Conservative Transformation creates Non-Wavenumber 1 Winds at Poles) +# ANA2BKGCNSRV: 0 or 1 # (Defaults to 0:BiLinear Interpolation. Note: Conservative Transformation creates Non-Wavenumber 1 Winds at Poles) +# +# Regular REPLAY Variables (Change only if desired REPLAY is different from Default) +# ---------------------------------------------------------------------------------- +# REPLAY_P: YES or NO # (Default: YES) +# REPLAY_U: YES or NO # (Default: YES) +# REPLAY_V: YES or NO # (Default: YES) +# REPLAY_T: YES or NO # (Default: YES) +# REPLAY_QV: YES or NO # (Default: YES) +# REPLAY_O3: YES or NO # (Default: YES) +# REPLAY_TS: YES or NO # (Default: NO) +# +# Regular REPLAY Remapping and Blending Variables +# ----------------------------------------------- +# REPLAY_REMAP: YES # Default = YES, Remap ANA Data to BKG Topography +# REPLAY_DAMPBEG: 100.0 # Default = 1, Linearly Damp Increments between DAMPBEG & DAMPEND (Pascals) +# REPLAY_DAMPEND: 5000.0 # Default = 1, Linearly Damp Increments between DAMPBEG & DAMPEND (Pascals) +# REPLAY_SHUTOFF: 21600 # ShutOff Replay after 6-hours of Integration +# REPLAY_WINDFIX: YES # Apply windfix to force vertically-integrated analysis divergence increment to zero +# +# REPLAY_BLEND_QV_AT_TP: .FALSE. # Default = FALSE, Blend QV to BKG upwards from tropopause +# +# +############################################################################################## +#### Intermittent Replay Options #### +#### #### +#### Intermittent: Within this mode two possibilities are available: #### +#### 1) Replay to full field: #### +#### Replays to an existing Analysis by "Dump & Splash". #### +#### RePlay File: %s.bkg.eta.%y4%m2%d2_%h2z.NCSUFFIX #### +#### Note: BKG.ETA (hour-3) files are used since they #### +#### contain the previous full analysis increment and are #### +#### well balanced. Do not use DAMP parameters. #### +#### RePlay Name Default: uwnd,vwnd,theta,sphu,ps,delp,ozone #### +#### REPLAY_GRID Options: D-GRID (Default), A-GRID #### +#### REPLAY_TVAR Options: THETAV (Default), THETA, TV, T #### +#### 2) Replay to an increment: (only cubed-dynamics for now) #### +#### Replay to an existing Analysis Increment as e.g, #### +#### RePlay File: %s.inc.eta.%y4%m2%d2_%h2z.NCSUFFIX #### +#### You much as specify REPLAY_IM and REPLAY_JM as #### +#### well as set REPLAY_TYPE: Incremental; this is #### +#### in addition to the MODE Intermittent. In some cases #### +#### you might set the parameter REPLAY_REF_TGAP to be #### +#### equal to RUN_DT (but in HHMMSS) to avoid increment #### +#### being taken one DT out of sync (this can also be used #### +#### in (1) above). #### +#### #### +#### Note: RePlay Blending Options Currently Pertain #### +#### to Intermittent Mode (see FVdycore_GridCompMod.F90) #### +#### #### +############################################################################################## + +##REPLAY_TYPE: Incremental +##REPLAY_FILE: C590a.inc.eta.%y4%m2%d2_%h2z.nc4 +##REPLAY_IM: 576 +##REPLAY_JM: 361 +##REPLAY_REF_DATE: >>>ANADATE<<< +##REPLAY_REF_TIME: >>>ANATIME<<< +##REPLAY_REF_TGAP: 001500 + +#REPLAY_MODE: Intermittent +#REPLAY_FILE: /discover/nobackup/projects/gmao/iesa/aerosol/Data/MERRA/iReplay/576x361/Y%y4/M%m2/d5_merra_jan98.bkg.eta.%y4%m2%d2_%h2z.nc4 +#REPLAY_IM: 576 # Required for Intermittent Replay on Cube +#REPLAY_JM: 361 # Required for Intermittent Replay on Cube + +#REPLAY_GRID: A-GRID # (!! For Intermittent Replay Only !!) Standard Options: D-GRID (Default), A-GRID +#REPLAY_TSNAME: NULL +#REPLAY_UNAME: u +#REPLAY_VNAME: v +#REPLAY_TNAME: tv +#REPLAY_TVAR: TV # Standard Options: THETAV (Default), THETA, TV, T + +#REPLAY_REMAP: NO # Standard Options: NO - Intermittent Replay (Cube Only) + +#REPLAY_BLEND: 0 # Standard Option: 0 - no blending +#REPLAY_BLEND_P_ABOVE: 10.0 # Standard Option: 10 Pa - highest of the two blending pressure levels +#REPLAY_BLEND_P_BELOW: 100.0 # Standard Option: 100 Pa - lowest of the two blending pressure levels +#REPLAY_BLEND_QV_AT_TP: .FALSE. # Default = .FALSE. Blend QV to BKG upwards from tropopause + + +############################################################################################## +#### REPLAY PRECIPITATION #### +############################################################################################## +# +# REPLAY PRECIP Parameters +# ------------------------ +# To REPLAY to CMAP-based precip files, you must symbolically link into your work area the datastreams from MERRA_LAND: +# +# Option 1) CMAP-CPCU Corrected (Used for NCA Project) +# ---------------------------------------------------- +# /bin/ln -s /gpfsm/dnb51/projects/p15/iau/merra_land/precip_CPCU-CMAP_corrected_MERRA/GEOSdas-2_1_4 ExtData/PCP +# +# Then, you must replace the token after PRECIP_FILE with the proper datastream for the desired years: +# ---------------------------------------------------------------------------------------------------- +# Years 1978-1993: d5_merra_jan79/diag/Y%y4/d5_merra_jan79.tavg1_2d_lfo_Nx_corr.%y4%m2%d2_%h230z.nc (Currently Not ONLINE) +# Years 1988-2001: d5_merra_jan89/diag/Y%y4/d5_merra_jan89.tavg1_2d_lfo_Nx_corr.%y4%m2%d2_%h230z.nc (Currently Not ONLINE) +# Years 1999-2014: d5_merra_jan98/diag/Y%y4/d5_merra_jan98.tavg1_2d_lfo_Nx_corr.%y4%m2%d2_%h230z.nc +# --------------- +# +# Option 2) CMAP-GPCP Corrected (from MERRA-Land) +# ----------------------------------------------- +# /bin/ln -s /discover/nobackup/projects/gmao/share/gmao_ops/fvInput/merra_land/precip_CPCUexcludeAfrica-CMAP_corrected_MERRA/GEOSdas-2_1_4 ExtData/PCP +# +# Then, you must replace the token after PRECIP_FILE with the proper datastream: +# ----------------------------------------------------------------------------------------------------------- +# Years 1979-2014: d5_merra/Y%y4/M%m2/d5_merra.tavg1_2d_lfo_Nx_corr.%y4%m2%d2_%h230z.nc +# --------------- +# +# Possible REPLAY PRECIP Files: +# ----------------------------- +#PRECIP_FILE: ExtData/PCP/@PRECIP_FILE +# +# Latitudinal Tapering between 42.5 and 62.5 degrees mimics NCEP's approach of using GCM-based precip at high latitudes +# -------------------- +#USE_PP_TAPER: 1 + +############################################################################################## +#### Land Surface Model #### +############################################################################################## + +# Option to Diagnose Precipitation Types for Land Surface +# ------------------------------------------------------------ +DIAGNOSE_PRECIP_TYPE: FALSE + +# Choice for Land Surface Model +# 1 : Catchment +# 2 : CatchmentCNCLM40 +# 3 : CatchmentCNCLM45 +# ------------------------------------------------------------ +LSM_CHOICE: 1 + +# Apply increments from LDAS? +# 0 : no (default) +# 1 : yes +# ------------------------------------------------------------ +#LDAS_INCR: 0 + +# Name of file containing Surface GridComp resource parameters +# ------------------------------------------------------------ +# SURFRC: GEOS_SurfaceGridComp.rc + + +# **************************************************************** +# ******* REQUIRES MAJOR CLEAN-UP ACROSS SEVERAL GRIDCOMPs ******* +# ******* (retained to facilitate this cleanup in future) ******* +# ******* IMPORTANT: This is merely for future reference ******* +# ******* The model reads USE_CNNEE from CO2_GridComp.rc ******* +# ******* not from this file. ******* +# Atmosphere-Land CO2 coupling +# ---------------------------- +# USE_CNNEE: 0 # options : 0 (default); 1 (Chem uses NNEE from CatchmentCN, NOTE you must add USE_CNNEE: 1 to CO2_GridComp.rc and AMIP/CO2_GridComp.rc, +# in GOCART/ESMF/GOCART_GridComp/CO2_GridComp/ before you build the model.) +# +# **************************************************************** + +############################################################################################## +############################################################################################## + +# IAU and In-Line BIAS Correction Parameters +# ---------------------------------------------------------------------------------- +# AGCM_IMPORT = IAU Analysis Increment +# AGCM_INTERNAL = BIAS Correction Increment: BIAS(n+1) = ALPHA*IAU(n) + BETA*BIAS(n) +# ---------------------------------------------------------------------------------- + +#AGCM_IMPORT_RESTART_FILE: agcm_import_rst + +#AGCM_INTERNAL_RESTART_FILE: agcm_internal_rst +#AGCM_INTERNAL_CHECKPOINT_FILE: agcm_internal_checkpoint +#AGCM_INTERNAL_CHECKPOINT_TYPE: default + +#AGCM_ALPHA: 0.000 +#AGCM_BETA: 1.000 + +MAPL_ENABLE_BOOTSTRAP: YES + +# Required AGCM Model Restart Files +# --------------------------------- +DYN_INTERNAL_RESTART_FILE: fvcore_internal_rst +DYN_INTERNAL_CHECKPOINT_FILE: fvcore_internal_checkpoint +DYN_INTERNAL_CHECKPOINT_TYPE: default +DYN_INTERNAL_HEADER: 1 + +LAKE_INTERNAL_RESTART_FILE: lake_internal_rst +LAKE_INTERNAL_CHECKPOINT_FILE: lake_internal_checkpoint +LAKE_INTERNAL_CHECKPOINT_TYPE: default + +LANDICE_INTERNAL_RESTART_FILE: landice_internal_rst +LANDICE_INTERNAL_CHECKPOINT_FILE: landice_internal_checkpoint +LANDICE_INTERNAL_CHECKPOINT_TYPE: default + +CATCH_INTERNAL_RESTART_FILE: catch_internal_rst +CATCH_INTERNAL_CHECKPOINT_FILE: catch_internal_checkpoint +CATCH_INTERNAL_CHECKPOINT_TYPE: default + +CATCHCNCLM40_INTERNAL_RESTART_FILE: catchcn_internal_rst +CATCHCNCLM40_INTERNAL_CHECKPOINT_FILE: catchcn_internal_checkpoint +CATCHCNCLM40_INTERNAL_CHECKPOINT_TYPE: default + +CATCHCNCLM45_INTERNAL_RESTART_FILE: catchcn_internal_rst +CATCHCNCLM45_INTERNAL_CHECKPOINT_FILE: catchcn_internal_checkpoint +CATCHCNCLM45_INTERNAL_CHECKPOINT_TYPE: default + +MOIST_INTERNAL_RESTART_FILE: moist_internal_rst +MOIST_INTERNAL_CHECKPOINT_FILE: moist_internal_checkpoint +MOIST_INTERNAL_CHECKPOINT_TYPE: default + + +# Boot-Strapable AGCM Model Restart Files +# --------------------------------------- +AIAU_IMPORT_RESTART_FILE: aiau_import_rst +AIAU_IMPORT_CHECKPOINT_FILE: aiau_import_checkpoint +AIAU_IMPORT_CHECKPOINT_TYPE: default + +GWD_IMPORT_RESTART_FILE: gwd_import_rst +GWD_IMPORT_CHECKPOINT_FILE: gwd_import_checkpoint +GWD_IMPORT_CHECKPOINT_TYPE: default + +MOIST_IMPORT_RESTART_FILE: moist_import_rst +MOIST_IMPORT_CHECKPOINT_FILE: moist_import_checkpoint +MOIST_IMPORT_CHECKPOINT_TYPE: default + +SURFACE_IMPORT_RESTART_FILE: surf_import_rst +SURFACE_IMPORT_CHECKPOINT_FILE: surf_import_checkpoint +SURFACE_IMPORT_CHECKPOINT_TYPE: default + +SOLAR_INTERNAL_RESTART_FILE: solar_internal_rst +SOLAR_INTERNAL_CHECKPOINT_FILE: solar_internal_checkpoint +SOLAR_INTERNAL_CHECKPOINT_TYPE: default + +IRRAD_INTERNAL_RESTART_FILE: irrad_internal_rst +IRRAD_INTERNAL_CHECKPOINT_FILE: irrad_internal_checkpoint +IRRAD_INTERNAL_CHECKPOINT_TYPE: default + +TURBULENCE_INTERNAL_RESTART_FILE: turb_internal_rst +TURBULENCE_INTERNAL_CHECKPOINT_FILE: turb_internal_checkpoint +TURBULENCE_INTERNAL_CHECKPOINT_TYPE: default + +TURBULENCE_IMPORT_RESTART_FILE: turb_import_rst +TURBULENCE_IMPORT_CHECKPOINT_FILE: turb_import_checkpoint +TURBULENCE_IMPORT_CHECKPOINT_TYPE: default + +PCHEM_INTERNAL_RESTART_FILE: pchem_internal_rst +PCHEM_INTERNAL_CHECKPOINT_FILE: pchem_internal_checkpoint +PCHEM_INTERNAL_CHECKPOINT_TYPE: default + +#H2O_INTERNAL_RESTART_FILE: h2o_internal_rst +#H2O_INTERNAL_CHECKPOINT_FILE: h2o_internal_checkpoint +#H2O_INTERNAL_CHECKPOINT_TYPE: default + +# Chemistry/AEROSOL Model Restart Files +# ------------------------------------- +GOCART_IMPORT_RESTART_FILE: gocart_import_rst +GOCART_IMPORT_CHECKPOINT_FILE: gocart_import_checkpoint +GOCART_IMPORT_CHECKPOINT_TYPE: default + +GOCART_INTERNAL_RESTART_FILE: gocart_internal_rst +GOCART_INTERNAL_CHECKPOINT_FILE: gocart_internal_checkpoint +GOCART_INTERNAL_CHECKPOINT_TYPE: default + +GOCART.data_INTERNAL_RESTART_FILE: gocartdata_internal_rst +GOCART.data_INTERNAL_CHECKPOINT_FILE: gocartdata_internal_checkpoint +GOCART.data_INTERNAL_CHECKPOINT_TYPE: default + +DU_INTERNAL_RESTART_FILE: du_internal_rst +DU_INTERNAL_CHECKPOINT_FILE: du_internal_checkpoint +DU_INTERNAL_CHECKPOINT_TYPE: default + +SS_INTERNAL_RESTART_FILE: ss_internal_rst +SS_INTERNAL_CHECKPOINT_FILE: ss_internal_checkpoint +SS_INTERNAL_CHECKPOINT_TYPE: default + +CA.oc_INTERNAL_RESTART_FILE: caoc_internal_rst +CA.oc_INTERNAL_CHECKPOINT_FILE: caoc_internal_checkpoint +CA.oc_INTERNAL_CHECKPOINT_TYPE: default + +CA.bc_INTERNAL_RESTART_FILE: cabc_internal_rst +CA.bc_INTERNAL_CHECKPOINT_FILE: cabc_internal_checkpoint +CA.bc_INTERNAL_CHECKPOINT_TYPE: default + +CA.br_INTERNAL_RESTART_FILE: cabr_internal_rst +CA.br_INTERNAL_CHECKPOINT_FILE: cabr_internal_checkpoint +CA.br_INTERNAL_CHECKPOINT_TYPE: default + +NI_INTERNAL_RESTART_FILE: ni_internal_rst +NI_INTERNAL_CHECKPOINT_FILE: ni_internal_checkpoint +NI_INTERNAL_CHECKPOINT_TYPE: default + +SU_INTERNAL_RESTART_FILE: su_internal_rst +SU_INTERNAL_CHECKPOINT_FILE: su_internal_checkpoint +SU_INTERNAL_CHECKPOINT_TYPE: default + +#CARMA_INTERNAL_RESTART_FILE: carma_internal_rst +#CARMA_INTERNAL_CHECKPOINT_FILE: carma_internal_checkpoint +#CARMA_INTERNAL_CHECKPOINT_TYPE: default + +##STRATCHEM_INTERNAL_RESTART_FILE: stratchem_internal_rst +##STRATCHEM_INTERNAL_CHECKPOINT_FILE: stratchem_internal_checkpoint +##STRATCHEM_INTERNAL_CHECKPOINT_TYPE: default + +##STRATCHEM_IMPORT_RESTART_FILE: stratchem_import_rst +##STRATCHEM_IMPORT_CHECKPOINT_FILE: stratchem_import_checkpoint +##STRATCHEM_IMPORT_CHECKPOINT_TYPE: default + +##GMICHEM_INTERNAL_RESTART_FILE: gmichem_internal_rst +##GMICHEM_INTERNAL_CHECKPOINT_FILE: gmichem_internal_checkpoint +##GMICHEM_INTERNAL_CHECKPOINT_TYPE: default + +##GMICHEM_IMPORT_RESTART_FILE: gmichem_import_rst +##GMICHEM_IMPORT_CHECKPOINT_FILE: gmichem_import_checkpoint +##GMICHEM_IMPORT_CHECKPOINT_TYPE: default + +GEOSCHEMCHEM_INTERNAL_RESTART_FILE: geoschemchem_internal_rst +GEOSCHEMCHEM_INTERNAL_CHECKPOINT_FILE: geoschemchem_internal_checkpoint +GEOSCHEMCHEM_INTERNAL_CHECKPOINT_TYPE: default + +GEOSCHEMCHEM_IMPORT_RESTART_FILE: geoschemchem_import_rst +GEOSCHEMCHEM_IMPORT_CHECKPOINT_FILE: geoschemchem_import_checkpoint +GEOSCHEMCHEM_IMPORT_CHECKPOINT_TYPE: default + +#MAM_INTERNAL_RESTART_FILE: mam_internal_rst +#MAM_INTERNAL_CHECKPOINT_FILE: mam_internal_checkpoint +#MAM_INTERNAL_CHECKPOINT_TYPE: default + +ACHEM_INTERNAL_RESTART_FILE: achem_internal_rst +ACHEM_INTERNAL_CHECKPOINT_FILE: achem_internal_checkpoint +ACHEM_INTERNAL_CHECKPOINT_TYPE: default + +TR_INTERNAL_RESTART_FILE: tr_internal_rst +TR_INTERNAL_CHECKPOINT_FILE: tr_internal_checkpoint +TR_INTERNAL_CHECKPOINT_TYPE: default + +TR_IMPORT_RESTART_FILE: tr_import_rst +TR_IMPORT_CHECKPOINT_FILE: tr_import_checkpoint +TR_IMPORT_CHECKPOINT_TYPE: default + +HEMCO_INTERNAL_RESTART_FILE: hemco_internal_rst +HEMCO_INTERNAL_CHECKPOINT_FILE: hemco_internal_checkpoint +HEMCO_INTERNAL_CHECKPOINT_TYPE: default + +HEMCO_IMPORT_RESTART_FILE: hemco_import_rst +HEMCO_IMPORT_CHECKPOINT_FILE: hemco_import_checkpoint +HEMCO_IMPORT_CHECKPOINT_TYPE: default + +#OH_INTERNAL_RESTART_FILE: oh_internal_rst +#OH_INTERNAL_CHECKPOINT_FILE: oh_internal_checkpoint +#OH_INTERNAL_CHECKPOINT_TYPE: default + +#OH_IMPORT_RESTART_FILE: oh_import_rst +#OH_IMPORT_CHECKPOINT_FILE: oh_import_checkpoint +#OH_IMPORT_CHECKPOINT_TYPE: default + +# OCEAN Model Restart Files +# ------------------------- +SALTWATER_IMPORT_RESTART_FILE: saltwater_import_rst +SALTWATER_IMPORT_CHECKPOINT_FILE: saltwater_import_checkpoint +SALTWATER_IMPORT_CHECKPOINT_TYPE: default + +OPENWATER_INTERNAL_RESTART_FILE: openwater_internal_rst +OPENWATER_INTERNAL_CHECKPOINT_FILE: openwater_internal_checkpoint +OPENWATER_INTERNAL_CHECKPOINT_TYPE: default + +SEAICETHERMO_INTERNAL_RESTART_FILE: seaicethermo_internal_rst +SEAICETHERMO_INTERNAL_CHECKPOINT_FILE: seaicethermo_internal_checkpoint +SEAICETHERMO_INTERNAL_CHECKPOINT_TYPE: default + + + + +# Boundary Datasets +# ----------------- +TOPO_MEAN_FILE: topo_dynave.data +TOPO_GWDVAR_FILE: topo_gwdvar.data +TOPO_TRBVAR_FILE: topo_trbvar.data + +LAI_FILE: lai.data +GREEN_FILE: green.data +NDVI_FILE: ndvi.data +TILING_FILE: tile.bin +VISDF_FILE: visdf.dat +NIRDF_FILE: nirdf.dat +LNFM_FILE: lnfm.data + +VEGDYN_INTERNAL_RESTART_FILE: vegdyn.data + +KPAR_FILE: SEAWIFS_KPAR_mon_clim.data + + +# AeroChem Environment +# -------------------- + OX_RELAXTIME: 259200. # Standard Options: GCM: 259200., DAS: 0.000 + CH4_RELAXTIME: 259200. + N2O_RELAXTIME: 259200. + CFC11_RELAXTIME: 259200. + CFC12_RELAXTIME: 259200. + HCFC22_RELAXTIME: 259200. + H2O_RELAXTIME: 259200. + OX_FRIENDLIES: ANALYSIS:DYNAMICS:TURBULENCE:MOIST + CH4_FRIENDLIES: DYNAMICS:TURBULENCE:MOIST + N2O_FRIENDLIES: DYNAMICS:TURBULENCE:MOIST + CFC11_FRIENDLIES: DYNAMICS:TURBULENCE:MOIST + CFC12_FRIENDLIES: DYNAMICS:TURBULENCE:MOIST + H2O_FRIENDLIES: DYNAMICS:TURBULENCE:MOIST +HCFC22_FRIENDLIES: DYNAMICS:TURBULENCE:MOIST + pchem_clim: species.data + pchem_clim_years: 228 + +# Age-of-Air Parameters +# --------------------- +#AOA_FRIENDLIES: DYNAMICS:TURBULENCE:MOIST + +# Set RADIATION Parameterizations +# ------------------------------- +USE_RRTMG_IRRAD: 1.0 + +USE_RRTMG_SORAD: 1.0 +ISOLVAR: 2 +USE_NRLSSI2: .TRUE. +SOLAR_CYCLE_FILE_NAME: ExtData/g5gcm/solar/NRLSSI2.v2020.txt + +NUM_BANDS: 30 + +#USE_RRTMGP_IRRAD: 1.0 +#USE_RRTMGP_SORAD: 1.0 +#RRTMGP_DATA_LW: /discover/nobackup/pnorris/RRTMGP-data.v1.5/rrtmgp/data/rrtmgp-data-lw-g128-210809.nc +#RRTMGP_DATA_SW: /discover/nobackup/pnorris/RRTMGP-data.v1.5/rrtmgp/data/rrtmgp-data-sw-g112-210809.nc +#RRTMGP_CLOUD_OPTICS_COEFFS_LW: /discover/nobackup/pnorris/RRTMGP-data.v1.5/extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-lw.nc +#RRTMGP_CLOUD_OPTICS_COEFFS_SW: /discover/nobackup/pnorris/RRTMGP-data.v1.5/extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-sw.nc + +DIURNAL_BIOMASS_BURNING: yes + + RATS_PROVIDER: PCHEM # options: PCHEM, GMICHEM, STRATCHEM (Radiatively active tracers) + AERO_PROVIDER: GOCART2G # options: GOCART2G, MAM, none (Radiatively active aerosols) +ANALYSIS_OX_PROVIDER: PCHEM # options: PCHEM, GMICHEM, STRATCHEM, GOCART + + +# Flag for real-time forecasts (persisted SST) IS_FCST: 1 (AMIP-Style Default: 0) +# ------------------------------------------------------------------------------- + IS_FCST: 0 + + +# Time step for aerosol assimilation (GAAS) +# ----------------------------------------- + GAAS_DT: 10800 # 3-hourly + +# DATAOCEAN Parameters for AMIP-Style Run +# ---------------------------------------- + DATA_SST_FILE: sst.data + DATA_FRT_FILE: fraci.data + MIN_SEAICE_DEPTH: 0.07 + MAX_SEAICE_DEPTH: 0.07 + TAU_SIT: 86400 + +# To compute skin SST over water (or to use SST Analysis Increment) set values to 1 +# --------------------------------------------------------------------------------- +USE_SKIN_LAYER: 1 + ANALYZE_TS: 0 + +# Model Tuning Parameters (For CMIP5 recommended SOLAR_CONSTANT and CO2 values, use -1) +# ------------------------------------------------------------------------------------- +SOLAR_CONSTANT: -1 +CO2: -1 + + +# Flags for SATSIM Output +# ----------------------- +USE_SATSIM: 0 +USE_SATSIM_ISCCP: 1 +USE_SATSIM_MODIS: 0 +USE_SATSIM_RADAR: 0 +USE_SATSIM_LIDAR: 0 +USE_SATSIM_MISR: 0 + + + + +# For running MOM5 coupled model in dual ocean mode, uncomment three lines below, +# make sure that regular replay is enabled, proper PRECIP_FILE is chosen, +# sst.data and fraci.data are pointing to read forcing files on tripolar grid, +# the run starts at 21z/03z/09z/15z, +# HISTORY.rc collections have proper ref_time field +# --------------------------------------------------------------------------- diff --git a/src/swell/configuration/jedi/interfaces/geos_cf/namelists/CAP_c360.rc b/src/swell/configuration/jedi/interfaces/geos_cf/namelists/CAP_c360.rc new file mode 100755 index 000000000..5dc4b3d10 --- /dev/null +++ b/src/swell/configuration/jedi/interfaces/geos_cf/namelists/CAP_c360.rc @@ -0,0 +1,34 @@ + +MAPLROOT_COMPNAME: GCM + ROOT_NAME: GCM +ROOT_CF: AGCM.rc +HIST_CF: HISTORY.rc + +# doesn't matter, cap_restart +BEG_DATE: 20000101 000000 +# can cap your run +END_DATE: 29990302 210000 + +# length of a sigle segment/job 1day +JOB_SGMT: >>SWELL_FC_LENGTH<< +# number of times you run the job/seg +NUM_SGMT: 1 +HEARTBEAT_DT: 300 + +USE_SHMEM: 0 + +# Parameters for Cycled REPLAY Forecasts +# -------------------------------------- + BEG_REPDATE: YYYYMMDD + END_REPDATE: YYYYMMDD +FCST_SEGMENT: 00000000 + +#PERPETUAL_YEAR: YYYY +#PERPETUAL_MONTH: MM +#PERPETUAL_DAY: DD + +MAPL_ENABLE_TIMERS: NO +MAPL_ENABLE_MEMUTILS: NO +PRINTSPEC: 0 # (0: OFF, 1: IMPORT & EXPORT, 2: IMPORT, 3: EXPORT) + +USE_EXTDATA2G: .TRUE. diff --git a/src/swell/configuration/jedi/interfaces/geos_cf/namelists/CAP_c90.rc b/src/swell/configuration/jedi/interfaces/geos_cf/namelists/CAP_c90.rc new file mode 100644 index 000000000..7e60c4515 --- /dev/null +++ b/src/swell/configuration/jedi/interfaces/geos_cf/namelists/CAP_c90.rc @@ -0,0 +1,34 @@ + +MAPLROOT_COMPNAME: GCM + ROOT_NAME: GCM +ROOT_CF: AGCM.rc +HIST_CF: HISTORY.rc + +# doesn't matter, cap_restart +BEG_DATE: 20000101 000000 +# can cap your run +END_DATE: 29990302 210000 + +# length of a sigle segment/job 1day +JOB_SGMT: >>SWELL_FC_LENGTH<< +# number of times you run the job/seg +NUM_SGMT: 1 +HEARTBEAT_DT: 900 + +USE_SHMEM: 0 + +# Parameters for Cycled REPLAY Forecasts +# -------------------------------------- + BEG_REPDATE: YYYYMMDD + END_REPDATE: YYYYMMDD +FCST_SEGMENT: 00000000 + +#PERPETUAL_YEAR: YYYY +#PERPETUAL_MONTH: MM +#PERPETUAL_DAY: DD + +MAPL_ENABLE_TIMERS: NO +MAPL_ENABLE_MEMUTILS: NO +PRINTSPEC: 0 # (0: OFF, 1: IMPORT & EXPORT, 2: IMPORT, 3: EXPORT) + +USE_EXTDATA2G: .TRUE. diff --git a/src/swell/configuration/jedi/interfaces/geos_cf/namelists/GEOSCHEMchem_AnaSettings_CO.rc b/src/swell/configuration/jedi/interfaces/geos_cf/namelists/GEOSCHEMchem_AnaSettings_CO.rc new file mode 100755 index 000000000..138af6296 --- /dev/null +++ b/src/swell/configuration/jedi/interfaces/geos_cf/namelists/GEOSCHEMchem_AnaSettings_CO.rc @@ -0,0 +1,19 @@ +SpeciesName: CO +Active: 0 +AnalysisFreq: 1 +AnalysisHour: 0 +AnalysisMinute: 0 +ForwardLooking: 0 +FileTemplate: >>SWELL_RUNDIR<>SWELL_RUNDIR<>SWELL_NUM_AN_VARS<< +#Analysis_Settings_Spec001: +#Analysis_Settings_Spec002: + +# Options to nudge O3 between level ANAO3L1 and ANAO3L4. If the flag Use_ANA_O3 is set to 1, GEOS-Chem ozone is nudged to +# the analysis field taken from the file specified in ANAO3TMPL. Nudging is performed between levels ANAO3L1 and ANAO3L4 +# (level numbers go from 1 = surface to top of atmosphere). +# The value specified in ANAO3FR is used as the 'blending factor', with a smooth vertical transition between zero and full +# nudging between levels ANAO3L1 to ANAO3L2 (lower boundary), and ANAO3L3 to ANAO3L4 (upper boundary), respectively. If +# NUDGE_RELATIVE_TO_TROPOPAUSE is set to a value above 0, the lower boundary will be determined based on the tropopause and +# nudging will be performed from the nearest model level below tropopause plus NUDGE_RELATIVE_TO_TROPOPAUSE. For instance, +# when set to a value of 1, nudging will start on the first level above the tropopause. If set to 3, nudging will begin from +# the 3rd level above tropopause upwards. Vertical smoothing is determined based on the difference between ANAO3L1 and ANAO3L2. +# If the flag 'Use_PCHEM_O3' is enabled, it will use the internal PCHEM O3 to do the nudging instead of the field provided +# in ANAO3TMPL. Use_ANA_O3 must still be enabled in this case. +# A nuding attempt is made every three hours (0130, 0430, ...) at the beginning of phase one of GEOS-Chem. If using ANAO3TMPL, +# it will look for variable 'O3' in that file, and the units of the field are assumed to be kg/kg (total air). This field +# must be on native GEOS vertical levels (i.e. level 1 = top of atmosphere). +# If no file is found for a given time step, nudging is skipped. Diagnostics 'GCC_ANA_O3_INC' outputs the ozone increments +# added to the GEOS-Chem ozone field. +# The error mode flag determines what happens if (a) the file is not found or (b) the current time is not found on file. Error +# mode of 0 exits with an error in all cases, 1 skips nudging (default), and 2 skips nudging if file not found and uses the +# first time slice on file if file is found but the current time stamp is not on file. +Use_ANA_O3: 0 +ANAO3TMPL: /discover/nobackup/projects/gmao/yotc/pub/fp/das/Y%y4/M%m2/D%d2/GEOS.fp.asm.tavg3_3d_asm_Nv.%y4%m2%d2_%h2%n2.V01.nc4 +ANAO3INC: 0 +ANAO3VAR: O3 +ANAO3VARUNIT: kg/kg +ANAO3FREQ: 3 +ANAO3HR: 1 +ANAO3MIN: 30 +ANAO3FWD: 1 +NUDGE_RELATIVE_TO_TROPOPAUSE: 1 +ANAO3L1: 1 +ANAO3L2: 1 +ANAO3L3: 72 +ANAO3L4: 72 +ANAO3FR: 0.2 +Use_PCHEM_O3: 0 +ERROR_MODE: 1 + +# +# NOx lightning met inputs +# +# Input source for flash rates: If set to 'LFR' or 'LFR_GCC', the corresponding MOIST export is used. If set to any other +# name, will search for that name in the import state. For instance, set it to 'LFR_OFFLINE' and then define an import via +# ExtData to use LFR values from a file. Default is LFR_GCC. All values expected in [flashes km-2 s-1]. +# Scale factors can be defined to adjust the imported LFR field for the southern extratropics (<23S), tropics (23S-23N), and +# the northern extratropics (>23N). In addition, a global scale factor can be set to rescale the overall LFR. +# These factors can be used to better match the expected global annual average flash rate of 46 flashes s-1, and a distribution +# of ~65% in the tropics and ~23% in the N extratropics. +# +LIGHTNING_FLASH_RATE_SOURCE: LFR_GCC +LFR_SCALING_SOUTHERN_TROP: 2.0 +LFR_SCALING_NORTHERN_TROP: 1.1 +LFR_SCALING_TROPICS: 0.4 +LFR_SCALING_GLOBAL: 2.0 + +# +# Input source for convective height: If set to 'CNV_MFC', will compute the convective height from convective mass fluxes +# (default). If set to 'BYNCY', will compute it from the buoyancy and convective fraction. For all other cases, will look +# for the field in import and use that as is. For instance, set it to 'CCTH_OFFLINE' and define an import via ExtData to +# use values from an external file. If read from file, the values must be in [m]. +# +LIGHTNING_CONVECTIVE_TOP_SOURCE: CNV_MFC +# + +# Turn off heterogenous reactions in stratosphere? +# If true, the following heterogeneous reactions are disabled (in the stratosphere): +# ClNO3(g) + HBr(l,s) --> BrCl + HNO3 +# BrNO3(g) + HCl(l,s) --> BrCl + HNO3 +# HOCl(g) + HBr(l,s) --> BrCl + H2O +TurnOffHetRates: 1 + +# +# Enable Bry and Cly family transport +# +Bry_Cly_Family_Transport: 1 + +SkipReplayGCC: 1 + +# +# CO production from CO2 photolysis +# +CO_production_from_CO2_photolysis: 1 +CO2photolysisFile: /discover/nobackup/cakelle2/tmp/SC.J_20_12_79_72_200_45.jpl15.nc4 + +# +# CO2 coupling with GOCART +# +Import_CO2_from_GOCART: 1 +GOCART_CO2_FieldName: GOCART_CO2 diff --git a/src/swell/configuration/jedi/interfaces/geos_cf/namelists/HEMCO_Config.rc b/src/swell/configuration/jedi/interfaces/geos_cf/namelists/HEMCO_Config.rc new file mode 100755 index 000000000..494dc0afe --- /dev/null +++ b/src/swell/configuration/jedi/interfaces/geos_cf/namelists/HEMCO_Config.rc @@ -0,0 +1,1814 @@ +### HEMCO INPUT FILE ### +# ================================================================================================== +# Category convention: +# 1: Industry +# 2: Power +# 3: Transportation +# 4: Residential +# 5: Agriculture +# 6: Natural +# 7: Plants +# 8: Biomass burning +# 9: Trash burning +# 10: Ship +# 20: Aircraft +# 30: Seabirds + +#################################################################################### +### BEGIN SECTION SETTINGS +#################################################################################### +# + +ROOT: {DATA_ROOT}/HEMCO +METDIR: not_used +Logfile: HEMCO.log +DiagnPrefix: HEMCO_diagnostics +DiagnFile: ./HEMCO_DiagnFile.rc +Wildcard: * +Separator: / +Unit tolerance: 1 +Negative values: 2 +Only unitless scale factors: false +Verbose: 0 +Warnings: 1 + +# +### END SECTION SETTINGS + +#################################################################################### +### BEGIN SECTION EXTENSION SWITCHES +#################################################################################### +# Make sure that the ExtNr provided here matches with the ExtNr provided in the base +# emissions sections. Otherwise, the listed files won't be read! +# +# ExtNr ExtName on/off Species +0 Base : on * +# ----- MAIN SWITCHES ----------------------- + --> EMISSIONS : true + --> METEOROLOGY : false + --> CHEMISTRY_INPUT : true +# ----- RESTART FIELDS ---------------------- + --> GC_RESTART : false + --> STATE_PSC : false + --> HEMCO_RESTART : false +# ----- NESTED GRID FIELDS ------------------ + --> GC_BCs : false + --> CEDS : true + --> CEDS_SHIP : true + --> CEDS_VOCs : true + --> CEDS_C2H6 : true + --> CH4_EMISSIONS : false + --> C2H6_EDGAR : false + --> C2H6_ZITELY : false + --> QFED : true + --> ORDONEZ_IODOCARB : true + --> DECAYING_PLANTS : true + --> AFCID : true + --> POET : false + --> SEABIRDS : true + --> DICE_AFRICA : false + --> TRASH : false + --> OMI_HTAP_SO2 : false +# ----- AIRCRAFT EMISSIONS ------------------ + --> AEIC : false + --> AEIC2019_MONMEAN : true + --> AEIC_SCALE_1990_2019 : true +# ----- NON-EMISSIONS DATA ------------------ + --> UVALBEDO : true + --> CCM_STRAT_Bry : true + --> GMI_STRAT_OH : true + --> GMI_PROD_LOSS : false + --> UCX_PROD_LOSS : false + --> OMOC_RATIO : false + --> GMD_SFC_CH4 : true + --> GEOS_3HR_CH4 : false + --> CMIP6_SFC_CH4 : false +# OLSON and MODIS read via MAPL not HEMCO in GEOS + --> OLSON_LANDMAP : false + --> YUAN_MODIS_LAI : false + --> RRTMG : false + --> SfcVMR : true + --> OCEAN_O3_DRYDEP : true +# -------------------------------------------------------- +100 Custom : off - +101 SeaFlux : on DMS/ACET/ALD2/MENO3/ETNO3/MOH +103 LightNOx : on NO + --> GEOS-5 flash rates: false +### --> OTD-LIS scaling : 0.355 +### --> OTD-LIS scaling : 0.634 +#C720 --> OTD-LIS scaling : 1.4152E-3 +#C180 --> OTD-LIS scaling : 1.527e-2 + --> OTD-LIS scaling : 0.12 + --> CDF table : /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/HEMCO/v0.0.0/sfc/light_dist.ott2010.dat + --> Use CNV_FRC : false + --> OTD-LIS factors : false +104 SoilNOx : on NO + --> Use fertilizer NOx: true +105 DustDead : on DST1/DST2/DST3/DST4 + --> Mass tuning factor: 2.454e-4 +#### --> Mass tuning factor: 4.0e-4 +#### --> Mass tuning factor: 5.0416e-4 +#C48 --> Mass tuning factor: 5.0416e-4 +#C720 --> Mass tuning factor: 2.3e-4 +#C180 --> Mass tuning factor: 3.23e-4 +107 SeaSalt : on SALA/SALC/SALACL/SALCCL/SALAAL/SALCAL/BrSALA/BrSALC/MOPO/MOPI + --> SALA lower radius : 0.01 + --> SALA upper radius : 0.5 + --> SALC lower radius : 0.5 + --> SALC upper radius : 8.0 + --> Reduce SS cold water : true + --> Blowing Snow SS : true + --> NH FYI snow salinity : 0.1 + --> NH MYI snow salinity : 0.05 + --> SH FYI snow salinity : 0.03 + --> SH MYI snow salinity : 0.015 + --> NH snow age : 3.0 + --> SH snow age : 1.5 + --> N per snowflake : 5.0 + --> Model sea salt Br- : false + --> Br- mass ratio : 2.11e-3 +108 MEGAN : on ISOP/ACET/PRPE/C2H4/ALD2/MOH/EOH/MTPA/MTPO/LIMO/SESQ/SOAP/SOAS + --> MEGAN_SUFFIX : _GCC + --> Isoprene scaling : 1.0 + --> CO2 inhibition : true + --> CO2 conc (ppmv) : 390.0 + --> Isoprene to SOAP : 0.015 + --> Isoprene to SOAS : 0.015 + --> Monoterp to SOAP : 0.050 + --> Monoterp to SOAS : 0.050 + --> Othrterp to SOAP : 0.050 + --> Othrterp to SOAS : 0.050 +111 GFED : off NO/CO/ALK4/ACET/MEK/ALD2/PRPE/C3H8/CH2O/C2H6/SO2/NH3/BCPO/BCPI/OCPO/OCPI/POG1/POG2/NAP + --> GFED4 : true + --> GFED_daily : false + --> GFED_3hourly : false + --> Scaling_CO : 1.05 + --> Scaling_POG1 : 1.27 + --> Scaling_POG2 : 1.27 + --> Scaling_NAP : 2.75e-4 + --> hydrophilic BC : 0.2 + --> hydrophilic OC : 0.5 + --> fraction POG1 : 0.49 + --> CO to SOAP : 0.013 + --> GFED_subgrid_coag : false +117 Volcano : on SO2 + --> Volcano_Source : AeroCom +# use flat degassing file for 2022 onwards: + --> Volcano_Table : ./ExtData/AeroCom/sfc/volcanic_CARN_1978-2020_v202005/so2_volcanic_emissions_CARN_v202005.degassing_only.rc + --> Volcano_Climatology : ./ExtData/AeroCom/sfc/volcanic_CARN_1978-2020_v202005/so2_volcanic_emissions_CARN_v202005.degassing_only.rc +# use degassing and eruptive for reanalysis: +# --> Volcano_Table : ./ExtData/AeroCom/sfc/volcanic_CARN_1978-2020_v202005/so2_volcanic_emissions_Carns.$YYYY$MM$DD.rc +120 Inorg_Iodine : on HOI/I2 + --> Emit HOI : true + --> Emit I2 : true +122 VFEI : off NO/CO/ALK4/ACET/MEK/ALD2/PRPE/C3H8/CH2O/C2H6/SO2/NH3/BCPO/BCPI/OCPO/OCPI/HNO2/HCl/ACTA/MGLY/GLYX/EOH/MOH/MTPO/ISOP/BENZ/TOLU/XYLE/SOAP/MACR/MVK/DMS + --> VFEI_Table : /discover/nobackup/cakelle2/data/VFEI/TXT/v0/Y$YYYY/vfeiv0_V1_$YYYY$MM$DD.txt + --> PBL_frac : 0.65 + --> MaxHeightM : 5500.0 + --> Category : 1 + --> Scaling_BCPO : 0.8 + --> Scaling_BCPI : 0.2 + --> Scaling_OCPO : 0.5 + --> Scaling_OCPI : 0.5 + --> Scaling_SOAP : 0.013 +### END SECTION EXTENSION SWITCHES + +#################################################################################### +### BEGIN SECTION BASE EMISSIONS +#################################################################################### + +(((EMISSIONS + +#======================================================================================================================================= +# --- CEDS --- +# +# ==> CEDS ship emissions are listed in the ship emissions section below +# ==> CEDS includes trash emissions (Cat=12) from Wiedinmyer et al. (2014) +#======================================================================================================================================= +(((CEDS +#201,211 ind Day-of-week(DOW),Time-of-day(TOD) +#202,212 ene DOW,TOD +#203,213 tra DOW,TOD +#204,214 rco DOW,TOD +#205,215 agr DOW,TOD + +#97 NOx ems as NO scale factor +# AGR NOx emissions are not used since soil NOx emissions include those from fertilizers +#0 CEDS_NO_AGR /see/ExtData.rc NO_agr 2014/1-12/1/0 C xy kg/m2/s NO 97/205/215 5 2 +0 CEDS_NO_ENE /see/ExtData.rc NO_ene 2014/1-12/1/0 C xyL=1:11 kg/m2/s NO 97/202/212/317 2 2 +0 CEDS_NO_IND /see/ExtData.rc NO_ind 2014/1-12/1/0 C xyL=1:15 kg/m2/s NO 97/201/211/318 1 2 +0 CEDS_NO_TRA /see/ExtData.rc NO_tra 2014/1-12/1/0 C xy kg/m2/s NO 97/203/213 3 2 +0 CEDS_NO_RCO /see/ExtData.rc NO_rco 2014/1-12/1/0 C xy kg/m2/s NO 97/204/214 4 2 +0 CEDS_NO_SLV /see/ExtData.rc NO_slv 2014/1-12/1/0 C xy kg/m2/s NO 97/201/211 1 2 +0 CEDS_NO_WST /see/ExtData.rc NO_wst 2014/1-12/1/0 C xy kg/m2/s NO 97 9 2 + +#98 NOx ems as NO2 scale factor +#115 NO to NO2 mass conversion +#0 CEDS_NO2_AGR /see/ExtData.rc NO_agr 2014/1-12/1/0 C xy kg/m2/s NO2 98/115/205/215 5 2 +0 CEDS_NO2_ENE /see/ExtData.rc NO_ene 2014/1-12/1/0 C xyL=1:11 kg/m2/s NO2 98/115/202/212/317 2 2 +0 CEDS_NO2_IND /see/ExtData.rc NO_ind 2014/1-12/1/0 C xyL=1:15 kg/m2/s NO2 98/115/201/211/318 1 2 +0 CEDS_NO2_TRA /see/ExtData.rc NO_tra 2014/1-12/1/0 C xy kg/m2/s NO2 98/115/203/213 3 2 +0 CEDS_NO2_RCO /see/ExtData.rc NO_rco 2014/1-12/1/0 C xy kg/m2/s NO2 98/115/204/214 4 2 +0 CEDS_NO2_SLV /see/ExtData.rc NO_slv 2014/1-12/1/0 C xy kg/m2/s NO2 98/115/201/211 1 2 +0 CEDS_NO2_WST /see/ExtData.rc NO_wst 2014/1-12/1/0 C xy kg/m2/s NO2 98/115 9 2 + +#280 COtoSOAP_anth +#301 ODIAC_ANNUALSCALE_2010 (not applied here but is used in HTAP) ********** +#302 ODIAC_ANNUALSCALE_2013 +0 CEDS_CO_AGR /see/ExtData.rc CO_agr 2014/1-12/1/0 C xy kg/m2/s CO 205/215 5 2 +0 CEDS_SOAP_AGR - - - - - - SOAP 205/215/280 5 2 +0 CEDS_CO_ENE /see/ExtData.rc CO_ene 2014/1-12/1/0 C xyL=1:11 kg/m2/s CO 202/212/317 2 2 +0 CEDS_SOAP_ENE - - - - - - SOAP 202/212/280/317 2 2 +0 CEDS_CO_IND /see/ExtData.rc CO_ind 2014/1-12/1/0 C xyL=1:15 kg/m2/s CO 201/211/318 1 2 +0 CEDS_SOAP_IND - - - - - - SOAP 201/211/280/318 1 2 +0 CEDS_CO_TRA /see/ExtData.rc CO_tra 2014/1-12/1/0 C xy kg/m2/s CO 203/213 3 2 +0 CEDS_SOAP_TRA - - - - - - SOAP 203/213/280 3 2 +0 CEDS_CO_RCO /see/ExtData.rc CO_rco 2014/1-12/1/0 C xy kg/m2/s CO 204/214 4 2 +0 CEDS_SOAP_RCO - - - - - - SOAP 204/214/280 4 2 +0 CEDS_CO_SLV /see/ExtData.rc CO_slv 2014/1-12/1/0 C xy kg/m2/s CO 201/211 1 2 +0 CEDS_SOAP_SLV - - - - - - SOAP 201/211/280 1 2 +0 CEDS_CO_WST /see/ExtData.rc CO_wst 2014/1-12/1/0 C xy kg/m2/s CO - 9 2 +0 CEDS_SOAP_WST - - - - - - SOAP 280 9 2 + +0 CEDS_NH3_AGR /see/ExtData.rc NH3_agr 2014/1-12/1/0 C xy kg/m2/s NH3 205/215 5 2 +0 CEDS_NH3_ENE /see/ExtData.rc NH3_ene 2014/1-12/1/0 C xyL=1:11 kg/m2/s NH3 202/212/317 2 2 +0 CEDS_NH3_IND /see/ExtData.rc NH3_ind 2014/1-12/1/0 C xyL=1:15 kg/m2/s NH3 201/211/318 1 2 +0 CEDS_NH3_TRA /see/ExtData.rc NH3_tra 2014/1-12/1/0 C xy kg/m2/s NH3 203/213 3 2 +0 CEDS_NH3_RCO /see/ExtData.rc NH3_rco 2014/1-12/1/0 C xy kg/m2/s NH3 204/214 4 2 +0 CEDS_NH3_SLV /see/ExtData.rc NH3_slv 2014/1-12/1/0 C xy kg/m2/s NH3 201/211 1 2 +0 CEDS_NH3_WST /see/ExtData.rc NH3_wst 2014/1-12/1/0 C xy kg/m2/s NH3 - 9 2 + +#70 BC2BCPI +#71 BC2BCPO +0 CEDS_BCPI_AGR /see/ExtData.rc BC_agr 2014/1-12/1/0 C xy kg/m2/s BCPI 70/205/215 5 2 +0 CEDS_BCPO_AGR - - - - - - BCPO 71/205/215 5 2 +0 CEDS_BCPI_ENE /see/ExtData.rc BC_ene 2014/1-12/1/0 C xyL=1:11 kg/m2/s BCPI 70/202/212/317 2 2 +0 CEDS_BCPO_ENE - - - - - - BCPO 71/202/212/317 2 2 +0 CEDS_BCPI_IND /see/ExtData.rc BC_ind 2014/1-12/1/0 C xyL=1:15 kg/m2/s BCPI 70/201/211/318 1 2 +0 CEDS_BCPO_IND - - - - - - BCPO 71/201/211/318 1 2 +0 CEDS_BCPI_TRA /see/ExtData.rc BC_tra 2014/1-12/1/0 C xy kg/m2/s BCPI 70/203/213 3 2 +0 CEDS_BCPO_TRA - - - - - - BCPO 71/203/213 3 2 +0 CEDS_BCPI_RCO /see/ExtData.rc BC_rco 2014/1-12/1/0 C xy kg/m2/s BCPI 70/204/214 4 2 +0 CEDS_BCPO_RCO - - - - - - BCPO 71/204/214 4 2 +0 CEDS_BCPI_SLV /see/ExtData.rc BC_slv 2014/1-12/1/0 C xy kg/m2/s BCPI 70/201/211 1 2 +0 CEDS_BCPO_SLV - - - - - - BCPO 71/201/211 1 2 +0 CEDS_BCPI_WST /see/ExtData.rc BC_wst 2014/1-12/1/0 C xy kg/m2/s BCPI 70 9 2 +0 CEDS_BCPO_WST - - - - - - BCPO 71 9 2 +#72 OC2OCPI +#73 OC2OCPO +#74 POGSCAL +#76 SV2POG1 +#77 SV2POG2 +0 CEDS_OCPI_AGR /see/ExtData.rc OC_agr 2014/1-12/1/0 C xy kg/m2/s OCPI 72/205/215 5 2 +0 CEDS_OCPO_AGR - - - - - - OCPO 73/205/215 5 2 +0 CEDS_POG1_AGR - - - - - - POG1 73/74/76/205/215 5 2 +0 CEDS_POG2_AGR - - - - - - POG2 73/74/77/205/215 5 2 +0 CEDS_OCPI_ENE /see/ExtData.rc OC_ene 2014/1-12/1/0 C xyL=1:11 kg/m2/s OCPI 72/202/212/317 2 2 +0 CEDS_OCPO_ENE - - - - - - OCPO 73/202/212/317 2 2 +0 CEDS_POG1_ENE - - - - - - POG1 73/74/76/202/212/317 2 2 +0 CEDS_POG2_ENE - - - - - - POG2 73/74/77/202/212/317 2 2 +0 CEDS_OCPI_IND /see/ExtData.rc OC_ind 2014/1-12/1/0 C xyL=1:15 kg/m2/s OCPI 72/201/211/318 1 2 +0 CEDS_OCPO_IND - - - - - - OCPO 73/201/211/318 1 2 +0 CEDS_POG1_IND - - - - - - POG1 73/74/76/201/211/318 1 2 +0 CEDS_POG2_IND - - - - - - POG2 73/74/77/201/211/318 1 2 +0 CEDS_OCPI_TRA /see/ExtData.rc OC_tra 2014/1-12/1/0 C xy kg/m2/s OCPI 72/203/213 3 2 +0 CEDS_OCPO_TRA - - - - - - OCPO 73/203/213 3 2 +0 CEDS_POG1_TRA - - - - - - POG1 73/74/76/203/213 3 2 +0 CEDS_POG2_TRA - - - - - - POG2 73/74/77/203/213 3 2 +0 CEDS_OCPI_RCO /see/ExtData.rc OC_rco 2014/1-12/1/0 C xy kg/m2/s OCPI 72/204/214 4 2 +0 CEDS_OCPO_RCO - - - - - - OCPO 73/204/214 4 2 +0 CEDS_POG1_RCO - - - - - - POG1 73/74/76/204/214 4 2 +0 CEDS_POG2_RCO - - - - - - POG2 73/74/77/204/214 4 2 +0 CEDS_OCPI_SLV /see/ExtData.rc OC_slv 2014/1-12/1/0 C xy kg/m2/s OCPI 72/201/211 1 2 +0 CEDS_OCPO_SLV - - - - - - OCPO 73/201/211 1 2 +0 CEDS_POG1_SLV - - - - - - POG1 73/74/76/201/211 1 2 +0 CEDS_POG2_SLV - - - - - - POG2 73/74/77/201/211 1 2 +0 CEDS_OCPI_WST /see/ExtData.rc OC_wst 2014/1-12/1/0 C xy kg/m2/s OCPI 72 9 2 +0 CEDS_OCPO_WST - - - - - - OCPO 73 9 2 +0 CEDS_POG1_WST - - - - - - POG1 73/74/76 9 2 +0 CEDS_POG2_WST - - - - - - POG2 73/74/77 9 2 + +#63 SO2toSO4 +#66 SO2toPFe +0 CEDS_SO2_AGR /see/ExtData.rc SO2_agr 2014/1-12/1/0 C xy kg/m2/s SO2 205/215 5 2 +0 CEDS_SO4_AGR - - - - - - SO4 63/205/215 5 2 +0 CEDS_pFe_AGR - - - - - - pFe 66/205/215 5 2 +0 CEDS_SO2_ENE /see/ExtData.rc SO2_ene 2014/1-12/1/0 C xyL=1:11 kg/m2/s SO2 202/212/317 2 2 +0 CEDS_SO4_ENE - - - - - - SO4 63/202/212/317 2 2 +0 CEDS_pFe_ENE - - - - - - pFe 66/202/212/317 2 2 +0 CEDS_SO2_IND /see/ExtData.rc SO2_ind 2014/1-12/1/0 C xyL=1:15 kg/m2/s SO2 201/211/318 1 2 +0 CEDS_SO4_IND - - - - - - SO4 63/201/211/318 1 2 +0 CEDS_pFe_IND - - - - - - pFe 66/201/211/318 1 2 +0 CEDS_SO2_TRA /see/ExtData.rc SO2_tra 2014/1-12/1/0 C xy kg/m2/s SO2 203/213 3 2 +0 CEDS_SO4_TRA - - - - - - SO4 63/203/213 3 2 +0 CEDS_pFe_TRA - - - - - - pFe 66/203/213 3 2 +0 CEDS_SO2_RCO /see/ExtData.rc SO2_rco 2014/1-12/1/0 C xy kg/m2/s SO2 204/214 4 2 +0 CEDS_SO4_RCO - - - - - - SO4 63/204/214 4 2 +0 CEDS_pFe_RCO - - - - - - pFe 66/204/214 4 2 +0 CEDS_SO2_SLV /see/ExtData.rc SO2_slv 2014/1-12/1/0 C xy kg/m2/s SO2 201/211 1 2 +0 CEDS_SO4_SLV - - - - - - SO4 63/201/211 1 2 +0 CEDS_pFe_SLV - - - - - - pFe 66/201/211 1 2 +0 CEDS_SO2_WST /see/ExtData.rc SO2_wst 2014/1-12/1/0 C xy kg/m2/s SO2 - 9 2 +0 CEDS_SO4_WST - - - - - - SO4 63 9 2 +0 CEDS_pFe_WST - - - - - - pFe 66 9 2 +)))CEDS + +(((CEDS_VOCs +##206,216 Average DOW,TOD used like in RETRO. ****Maybe I shouldn't apply to _WST ?? or apply to _WST evwh****** +# +##8 kg EOH to kg MOH +##9 kg EOH to kg EOH +##24 kg EOH to kg ROH +##92 VOC1 to MOH +##93 VOC1 to EOH +##94 VOC1 to ROH +0 CEDS_MOH_AGR see/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_agr 2014/1-12/1/0 C xy kg/m2/s MOH 206/216/8/92 5 2 +0 CEDS_EOH_AGR - - - - - - EOH 206/216/9/93 5 2 +0 CEDS_ROH_AGR - - - - - - ROH 206/216/24/94 5 2 +0 CEDS_MOH_ENE see/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_ene 2014/1-12/1/0 C xyL=1:11 kg/m2/s MOH 206/216/8/92/317 2 2 +0 CEDS_EOH_ENE - - - - - - EOH 206/216/9/93/317 2 2 +0 CEDS_ROH_ENE - - - - - - ROH 206/216/24/94/317 2 2 +0 CEDS_MOH_IND see/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_ind 2014/1-12/1/0 C xyL=1:15 kg/m2/s MOH 206/216/8/92/318 1 2 +0 CEDS_EOH_IND - - - - - - EOH 206/216/9/93/318 1 2 +0 CEDS_ROH_IND - - - - - - ROH 206/216/24/94/318 1 2 +0 CEDS_MOH_TRA see/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_tra 2014/1-12/1/0 C xy kg/m2/s MOH 206/216/8/92 3 2 +0 CEDS_EOH_TRA - - - - - - EOH 206/216/9/93 3 2 +0 CEDS_ROH_TRA - - - - - - ROH 206/216/24/94 3 2 +0 CEDS_MOH_RCO see/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_rco 2014/1-12/1/0 C xy kg/m2/s MOH 206/216/8/92 4 2 +0 CEDS_EOH_RCO - - - - - - EOH 206/216/9/93 4 2 +0 CEDS_ROH_RCO - - - - - - ROH 206/216/24/94 4 2 +0 CEDS_MOH_SLV see/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_slv 2014/1-12/1/0 C xy kg/m2/s MOH 206/216/8/92 1 2 +0 CEDS_EOH_SLV - - - - - - EOH 206/216/9/93 1 2 +0 CEDS_ROH_SLV - - - - - - ROH 206/216/24/94 1 2 +0 CEDS_MOH_WST see/EOH-em-anthro_CMIP_CEDS_$YYYY.nc EOH_wst 2014/1-12/1/0 C xy kg/m2/s MOH 206/216/8/92 9 2 +0 CEDS_EOH_WST - - - - - - EOH 206/216/9/93 9 2 +0 CEDS_ROH_WST - - - - - - ROH 206/216/24/94 9 2 + +#10 C4H10toALK4 +0 CEDS_C4H10_AGR see/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_agr 2014/1-12/1/0 C xy kg/m2/s ALK4 206/216/10 5 2 +0 CEDS_C4H10_ENE see/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_ene 2014/1-12/1/0 C xyL=1:11 kg/m2/s ALK4 206/216/10/317 2 2 +0 CEDS_C4H10_IND see/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_ind 2014/1-12/1/0 C xyL=1:15 kg/m2/s ALK4 206/216/10/318 1 2 +0 CEDS_C4H10_TRA see/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_tra 2014/1-12/1/0 C xy kg/m2/s ALK4 206/216/10 3 2 +0 CEDS_C4H10_RCO see/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_rco 2014/1-12/1/0 C xy kg/m2/s ALK4 206/216/10 4 2 +0 CEDS_C4H10_SLV see/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_slv 2014/1-12/1/0 C xy kg/m2/s ALK4 206/216/10 1 2 +0 CEDS_C4H10_WST see/ALK4_butanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_butanes_wst 2014/1-12/1/0 C xy kg/m2/s ALK4 206/216/10 9 2 + +#11 C5H12toALK4 +0 CEDS_C5H12_AGR see/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_agr 2014/1-12/1/0 C xy kg/m2/s ALK4 206/216/11 5 2 +0 CEDS_C5H12_ENE see/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_ene 2014/1-12/1/0 C xyL=1:11 kg/m2/s ALK4 206/216/11/317 2 2 +0 CEDS_C5H12_IND see/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_ind 2014/1-12/1/0 C xyL=1:15 kg/m2/s ALK4 206/216/11/318 1 2 +0 CEDS_C5H12_TRA see/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_tra 2014/1-12/1/0 C xy kg/m2/s ALK4 206/216/11 3 2 +0 CEDS_C5H12_RCO see/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_rco 2014/1-12/1/0 C xy kg/m2/s ALK4 206/216/11 4 2 +0 CEDS_C5H12_SLV see/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_slv 2014/1-12/1/0 C xy kg/m2/s ALK4 206/216/11 1 2 +0 CEDS_C5H12_WST see/ALK4_pentanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_pentanes_wst 2014/1-12/1/0 C xy kg/m2/s ALK4 206/216/11 9 2 + +#12 C6H14toALK4 +0 CEDS_C6H14_AGR see/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_agr 2014/1-12/1/0 C xy kg/m2/s ALK4 206/216/12 5 2 +0 CEDS_C6H14_ENE see/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_ene 2014/1-12/1/0 C xyL=1:11 kg/m2/s ALK4 206/216/12/317 2 2 +0 CEDS_C6H14_IND see/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_ind 2014/1-12/1/0 C xyL=1:15 kg/m2/s ALK4 206/216/12/318 1 2 +0 CEDS_C6H14_TRA see/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_tra 2014/1-12/1/0 C xy kg/m2/s ALK4 206/216/12 3 2 +0 CEDS_C6H14_RCO see/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_rco 2014/1-12/1/0 C xy kg/m2/s ALK4 206/216/12 4 2 +0 CEDS_C6H14_SLV see/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_slv 2014/1-12/1/0 C xy kg/m2/s ALK4 206/216/12 1 2 +0 CEDS_C6H14_WST see/ALK4_hexanes-em-anthro_CMIP_CEDS_$YYYY.nc ALK4_hexanes_wst 2014/1-12/1/0 C xy kg/m2/s ALK4 206/216/12 9 2 + +#14 MEKtoACET +#50 CEDS_KET2ACET +0 CEDS_ACET_AGR see/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_agr 2014/1-12/1/0 C xy kg/m2/s ACET 206/216/14/51 5 2 +0 CEDS_ACET_ENE see/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_agr 2014/1-12/1/0 C xyL=1:11 kg/m2/s ACET 206/216/14/51/317 2 2 +0 CEDS_ACET_IND see/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_agr 2014/1-12/1/0 C xyL=1:15 kg/m2/s ACET 206/216/14/51/318 1 2 +0 CEDS_ACET_TRA see/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_agr 2014/1-12/1/0 C xy kg/m2/s ACET 206/216/14/51 3 2 +0 CEDS_ACET_RCO see/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_agr 2014/1-12/1/0 C xy kg/m2/s ACET 206/216/14/51 4 2 +0 CEDS_ACET_SLV see/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_agr 2014/1-12/1/0 C xy kg/m2/s ACET 206/216/14/51 1 2 +0 CEDS_ACET_WST see/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_agr 2014/1-12/1/0 C xy kg/m2/s ACET 206/216/14/51 9 2 + +#13 MEKtoMEK +#51 CEDS_KET2MEK +0 CEDS_MEK_AGR see/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_agr 2014/1-12/1/0 C xy kg/m2/s MEK 206/216/13/50 5 2 +0 CEDS_MEK_ENE see/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_ene 2014/1-12/1/0 C xyL=1:11 kg/m2/s MEK 206/216/13/50/317 2 2 +0 CEDS_MEK_IND see/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_ind 2014/1-12/1/0 C xyL=1:15 kg/m2/s MEK 206/216/13/50/318 1 2 +0 CEDS_MEK_TRA see/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_tra 2014/1-12/1/0 C xy kg/m2/s MEK 206/216/13/50 3 2 +0 CEDS_MEK_RCO see/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_rco 2014/1-12/1/0 C xy kg/m2/s MEK 206/216/13/50 4 2 +0 CEDS_MEK_SLV see/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_slv 2014/1-12/1/0 C xy kg/m2/s MEK 206/216/13/50 1 2 +0 CEDS_MEK_WST see/MEK-em-anthro_CMIP_CEDS_$YYYY.nc MEK_wst 2014/1-12/1/0 C xy kg/m2/s MEK 206/216/13/50 9 2 + +#15 ALD2toALD2 +0 CEDS_ALD2_AGR see/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_agr 2014/1-12/1/0 C xy kg/m2/s ALD2 206/216/15 5 2 +0 CEDS_ALD2_ENE see/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_ene 2014/1-12/1/0 C xyL=1:11 kg/m2/s ALD2 206/216/15/317 2 2 +0 CEDS_ALD2_IND see/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_ind 2014/1-12/1/0 C xyL=1:15 kg/m2/s ALD2 206/216/15/318 1 2 +0 CEDS_ALD2_TRA see/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_tra 2014/1-12/1/0 C xy kg/m2/s ALD2 206/216/15 3 2 +0 CEDS_ALD2_RCO see/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_rco 2014/1-12/1/0 C xy kg/m2/s ALD2 206/216/15 4 2 +0 CEDS_ALD2_SLV see/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_slv 2014/1-12/1/0 C xy kg/m2/s ALD2 206/216/15 1 2 +0 CEDS_ALD2_WST see/ALD2-em-anthro_CMIP_CEDS_$YYYY.nc ALD2_wst 2014/1-12/1/0 C xy kg/m2/s ALD2 206/216/15 9 2 + +0 CEDS_PRPE_AGR see/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_agr 2014/1-12/1/0 C xy kg/m2/s PRPE 206/216 5 2 +0 CEDS_PRPE_ENE see/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_ene 2014/1-12/1/0 C xyL=1:11 kg/m2/s PRPE 206/216/317 2 2 +0 CEDS_PRPE_IND see/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_ind 2014/1-12/1/0 C xyL=1:15 kg/m2/s PRPE 206/216/318 1 2 +0 CEDS_PRPE_TRA see/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_tra 2014/1-12/1/0 C xy kg/m2/s PRPE 206/216 3 2 +0 CEDS_PRPE_RCO see/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_rco 2014/1-12/1/0 C xy kg/m2/s PRPE 206/216 4 2 +0 CEDS_PRPE_SLV see/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_slv 2014/1-12/1/0 C xy kg/m2/s PRPE 206/216 1 2 +0 CEDS_PRPE_WST see/PRPE-em-anthro_CMIP_CEDS_$YYYY.nc PRPE_wst 2014/1-12/1/0 C xy kg/m2/s PRPE 206/216 9 2 + +0 CEDS_C3H8_AGR see/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_agr 2014/1-12/1/0 C xy kg/m2/s C3H8 206/216 5 2 +0 CEDS_C3H8_ENE see/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_ene 2014/1-12/1/0 C xyL=1:11 kg/m2/s C3H8 206/216/317 2 2 +0 CEDS_C3H8_IND see/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_ind 2014/1-12/1/0 C xyL=1:15 kg/m2/s C3H8 206/216/318 1 2 +0 CEDS_C3H8_TRA see/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_tra 2014/1-12/1/0 C xy kg/m2/s C3H8 206/216 3 2 +0 CEDS_C3H8_RCO see/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_rco 2014/1-12/1/0 C xy kg/m2/s C3H8 206/216 4 2 +0 CEDS_C3H8_SLV see/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_slv 2014/1-12/1/0 C xy kg/m2/s C3H8 206/216 1 2 +0 CEDS_C3H8_WST see/C3H8-em-anthro_CMIP_CEDS_$YYYY.nc C3H8_wst 2014/1-12/1/0 C xy kg/m2/s C3H8 206/216 9 2 + +0 CEDS_CH2O_AGR see/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_agr 2014/1-12/1/0 C xy kg/m2/s CH2O 206/216 5 2 +0 CEDS_CH2O_ENE see/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_ene 2014/1-12/1/0 C xyL=1:11 kg/m2/s CH2O 206/216/317 2 2 +0 CEDS_CH2O_IND see/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_ind 2014/1-12/1/0 C xyL=1:15 kg/m2/s CH2O 206/216/318 1 2 +0 CEDS_CH2O_TRA see/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_tra 2014/1-12/1/0 C xy kg/m2/s CH2O 206/216 3 2 +0 CEDS_CH2O_RCO see/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_rco 2014/1-12/1/0 C xy kg/m2/s CH2O 206/216 4 2 +0 CEDS_CH2O_SLV see/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_slv 2014/1-12/1/0 C xy kg/m2/s CH2O 206/216 1 2 +0 CEDS_CH2O_WST see/CH2O-em-anthro_CMIP_CEDS_$YYYY.nc CH2O_wst 2014/1-12/1/0 C xy kg/m2/s CH2O 206/216 9 2 + +0 CEDS_BENZ_AGR see/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_agr 2014/1-12/1/0 C xy kg/m2/s BENZ 206/216 5 2 +0 CEDS_BENZ_ENE see/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_ene 2014/1-12/1/0 C xyL=1:11 kg/m2/s BENZ 206/216/317 2 2 +0 CEDS_BENZ_IND see/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_ind 2014/1-12/1/0 C xyL=1:15 kg/m2/s BENZ 206/216/318 1 2 +0 CEDS_BENZ_TRA see/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_tra 2014/1-12/1/0 C xy kg/m2/s BENZ 206/216 3 2 +0 CEDS_BENZ_RCO see/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_rco 2014/1-12/1/0 C xy kg/m2/s BENZ 206/216 4 2 +0 CEDS_BENZ_SLV see/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_slv 2014/1-12/1/0 C xy kg/m2/s BENZ 206/216 1 2 +0 CEDS_BENZ_WST see/BENZ-em-anthro_CMIP_CEDS_$YYYY.nc BENZ_wst 2014/1-12/1/0 C xy kg/m2/s BENZ 206/216 9 2 + +0 CEDS_TOLU_AGR see/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_agr 2014/1-12/1/0 C xy kg/m2/s TOLU 206/216 5 2 +0 CEDS_TOLU_ENE see/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_ene 2014/1-12/1/0 C xyL=1:11 kg/m2/s TOLU 206/216/317 2 2 +0 CEDS_TOLU_IND see/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_ind 2014/1-12/1/0 C xyL=1:15 kg/m2/s TOLU 206/216/318 1 2 +0 CEDS_TOLU_TRA see/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_tra 2014/1-12/1/0 C xy kg/m2/s TOLU 206/216 3 2 +0 CEDS_TOLU_RCO see/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_rco 2014/1-12/1/0 C xy kg/m2/s TOLU 206/216 4 2 +0 CEDS_TOLU_SLV see/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_slv 2014/1-12/1/0 C xy kg/m2/s TOLU 206/216 1 2 +0 CEDS_TOLU_WST see/TOLU-em-anthro_CMIP_CEDS_$YYYY.nc TOLU_wst 2014/1-12/1/0 C xy kg/m2/s TOLU 206/216 9 2 + +0 CEDS_XYLE_AGR see/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_agr 2014/1-12/1/0 C xy kg/m2/s XYLE 206/216 5 2 +0 CEDS_XYLE_ENE see/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_ene 2014/1-12/1/0 C xyL=1:11 kg/m2/s XYLE 206/216/317 2 2 +0 CEDS_XYLE_IND see/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_ind 2014/1-12/1/0 C xyL=1:15 kg/m2/s XYLE 206/216/318 1 2 +0 CEDS_XYLE_TRA see/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_tra 2014/1-12/1/0 C xy kg/m2/s XYLE 206/216 3 2 +0 CEDS_XYLE_RCO see/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_rco 2014/1-12/1/0 C xy kg/m2/s XYLE 206/216 4 2 +0 CEDS_XYLE_SLV see/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_slv 2014/1-12/1/0 C xy kg/m2/s XYLE 206/216 1 2 +0 CEDS_XYLE_WST see/XYLE-em-anthro_CMIP_CEDS_$YYYY.nc XYLE_wst 2014/1-12/1/0 C xy kg/m2/s XYLE 206/216 9 2 + +0 CEDS_C2H4_AGR see/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_agr 2014/1-12/1/0 C xy kg/m2/s C2H4 206/216 5 2 +0 CEDS_C2H4_ENE see/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_ene 2014/1-12/1/0 C xyL=1:11 kg/m2/s C2H4 206/216/317 2 2 +0 CEDS_C2H4_IND see/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_ind 2014/1-12/1/0 C xyL=1:15 kg/m2/s C2H4 206/216/318 1 2 +0 CEDS_C2H4_TRA see/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_tra 2014/1-12/1/0 C xy kg/m2/s C2H4 206/216 3 2 +0 CEDS_C2H4_RCO see/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_rco 2014/1-12/1/0 C xy kg/m2/s C2H4 206/216 4 2 +0 CEDS_C2H4_SLV see/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_slv 2014/1-12/1/0 C xy kg/m2/s C2H4 206/216 1 2 +0 CEDS_C2H4_WST see/C2H4-em-anthro_CMIP_CEDS_$YYYY.nc C2H4_wst 2014/1-12/1/0 C xy kg/m2/s C2H4 206/216 9 2 + +#0 CEDS_C2H2_AGR see/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_agr 2014/1-12/1/0 C xy kg/m2/s C2H2 206/216 5 2 +#0 CEDS_C2H2_ENE see/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_ene 2014/1-12/1/0 C xyL=1:11 kg/m2/s C2H2 206/216/317 2 2 +#0 CEDS_C2H2_IND see/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_ind 2014/1-12/1/0 C xyL=1:15 kg/m2/s C2H2 206/216/318 1 2 +#0 CEDS_C2H2_TRA see/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_tra 2014/1-12/1/0 C xy kg/m2/s C2H2 206/216 3 2 +#0 CEDS_C2H2_RCO see/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_rco 2014/1-12/1/0 C xy kg/m2/s C2H2 206/216 4 2 +#0 CEDS_C2H2_SLV see/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_slv 2014/1-12/1/0 C xy kg/m2/s C2H2 206/216 1 2 +#0 CEDS_C2H2_WST see/C2H2-em-anthro_CMIP_CEDS_$YYYY.nc C2H2_wst 2014/1-12/1/0 C xy kg/m2/s C2H2 206/216 9 2 + +#16 HCOOHtoHCOOH +0 CEDS_HCOOH_AGR see/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_agr 2014/1-12/1/0 C xy kg/m2/s HCOOH 206/216/16 5 2 +0 CEDS_HCOOH_ENE see/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_ene 2014/1-12/1/0 C xyL=1:11 kg/m2/s HCOOH 206/216/16/317 2 2 +0 CEDS_HCOOH_IND see/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_ind 2014/1-12/1/0 C xyL=1:15 kg/m2/s HCOOH 206/216/16/318 1 2 +0 CEDS_HCOOH_TRA see/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_tra 2014/1-12/1/0 C xy kg/m2/s HCOOH 206/216/16 3 2 +0 CEDS_HCOOH_RCO see/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_rco 2014/1-12/1/0 C xy kg/m2/s HCOOH 206/216/16 4 2 +0 CEDS_HCOOH_SLV see/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_slv 2014/1-12/1/0 C xy kg/m2/s HCOOH 206/216/16 1 2 +0 CEDS_HCOOH_WST see/HCOOH-em-anthro_CMIP_CEDS_$YYYY.nc HCOOH_wst 2014/1-12/1/0 C xy kg/m2/s HCOOH 206/216/16 9 2 +)))CEDS_VOCs + +(((CEDS_C2H6 +0 CEDS_C2H6_AGR /see/ExtData.rc C2H6_agr 2014/1-12/1/0 C xy kg/m2/s C2H6 206/216 5 2 +0 CEDS_C2H6_ENE /see/ExtData.rc C2H6_ene 2014/1-12/1/0 C xyL=1:11 kg/m2/s C2H6 206/216/317 2 2 +0 CEDS_C2H6_IND /see/ExtData.rc C2H6_ind 2014/1-12/1/0 C xyL=1:15 kg/m2/s C2H6 206/216/318 1 2 +0 CEDS_C2H6_TRA /see/ExtData.rc C2H6_tra 2014/1-12/1/0 C xy kg/m2/s C2H6 206/216 3 2 +0 CEDS_C2H6_RCO /see/ExtData.rc C2H6_rco 2014/1-12/1/0 C xy kg/m2/s C2H6 206/216 4 2 +0 CEDS_C2H6_SLV /see/ExtData.rc C2H6_slv 2014/1-12/1/0 C xy kg/m2/s C2H6 206/216 1 2 +0 CEDS_C2H6_WST /see/ExtData.rc C2H6_wst 2014/1-12/1/0 C xy kg/m2/s C2H6 206/216 9 2 +)))CEDS_C2H6 + +#======================================================================================================================================= +# --- GEIA (natural NH3 only) --- +#======================================================================================================================================= +0 GEIA_NH3_NATU ~/data/NH3_geos.1x1.nc NH3_NATU 1990/1-12/1/0 C xy kg/m2/s NH3 - 6 1 + +#======================================================================================================================================= +# NH3 from sea birds +#======================================================================================================================================= +(((SEABIRDS +0 SEABIRD_NH3 $ROOT/NH3/v2018-04/NH3_Arctic_seabirds.nc NH3_SEABIRDS 1990/1-12/1/0 C xy kg/m2/s NH3 - 30 1 +)))SEABIRDS + +#============================================================================== +# --- POET EOH --- +#============================================================================== +(((POET +0 POET_EOH $ROOT/POET/v2017-03/POET_EOH.geos.2x25.nc EOH 1985/1/1/0 C xy kgC/m2/s EOH 26/47 1 1 +)))POET + +#======================================================================================================================================= +# --- NAP EMISSIONS --- +#======================================================================================================================================= +0 EDGAR_NAP $ROOT/EDGARv42/v2015-02/VOCv2/EDGAR2_1985_FF_IND.1x1geos.nc BENZ 1985/1/1/0 C xy kgC/m2/s NAP 80/81/82/43 1 1 + +(((C2H6_ZITELY +0 C2H6_2010_anthro $ROOT/C2H6_2010/v2017-05/C2H6_global_anth_biof.2010$MM.nc ANTHR_C2H6 2010/1-12/1/0 C xy kgC/m2/s C2H6 206/216/45 1/2/3 100 +0 C2H6_2010_biofuel $ROOT/C2H6_2010/v2017-05/C2H6_global_anth_biof.2010$MM.nc BIOFUEL_C2H6 2010/1-12/1/0 C xy kgC/m2/s C2H6 206/216/45 4 100 +)))C2H6_ZITELY + +#======================================================================================================================================= +# --- Bromocarbon emissions --- +#======================================================================================================================================= +0 LIANG_CHBr3 Bromocarb_Liang2010.nc CHBr3_emission 2000/1/1/0 C xy kg/m2/s CHBr3 39 1 1 +0 LIANG_CH2Br2 Bromocarb_Liang2010.nc CH2Br2_emission 2000/1/1/0 C xy kg/m2/s CH2Br2 - 1 1 + +#============================================================================== +# --- Very-short-lived (VSL) iodocarbon emissions (cf. Carlos Ordonez) --- +#============================================================================== +(((ORDONEZ_IODOCARB +0 ORDONEZ_CH3I Emissions/CH3I_monthly_emissions_Ordonez_2012_COARDS.nc CH3I 2000/1-12/1/0 C xy kg/m2/s CH3I - 1 1 +0 ORDONEZ_CH2I2 Emissions/CH2I2_monthly_emissions_Ordonez_2012_COARDS.nc CH2I2 2000/1-12/1/0 C xy kg/m2/s CH2I2 - 1 1 +0 ORDONEZ_CH2ICL Emissions/CH2ICl_monthly_emissions_Ordonez_2012_COARDS.nc CH2ICl 2000/1-12/1/0 C xy kg/m2/s CH2ICl - 1 1 +0 ORDONEZ_CH2IBR Emissions/CH2IBr_monthly_emissions_Ordonez_2012_COARDS.nc CH2IBr 2000/1-12/1/0 C xy kg/m2/s CH2IBr - 1 1 +)))ORDONEZ_IODOCARB + +#======================================================================================================================================= +# --- CH4 emissions --- +#======================================================================================================================================= +### Gas and oil ### +(((CH4_EMISSIONS +0 CH4_GAS__1B2a $ROOT/CH4/v2014-09/v42_CH4.0.1x0.1.nc ch4_1B2a 2004-2008/1/1/0 C xy kg/m2/s CH4 - 1 1 +0 CH4_GAS__1B2b $ROOT/CH4/v2014-09/v42_CH4.0.1x0.1.nc ch4_1B2b 2004-2008/1/1/0 C xy kg/m2/s CH4 - 1 1 + +### Coal mines ### +0 CH4_COAL__1B1 $ROOT/CH4/v2014-09/v42_CH4.0.1x0.1.nc ch4_1B1 2004-2008/1/1/0 C xy kg/m2/s CH4 - 2 1 + +### Livestock ### +0 CH4_LIVESTOCK__4A $ROOT/CH4/v2014-09/v42_CH4.0.1x0.1.nc ch4_4A 2004-2008/1/1/0 C xy kg/m2/s CH4 - 3 1 +0 CH4_LIVESTOCK__4B $ROOT/CH4/v2014-09/v42_CH4.0.1x0.1.nc ch4_4B 2004-2008/1/1/0 C xy kg/m2/s CH4 - 3 1 + +### Waste ### +0 CH4_WASTE__6A_6C $ROOT/CH4/v2014-09/v42_CH4.0.1x0.1.nc ch4_6A_6C 2004-2008/1/1/0 C xy kg/m2/s CH4 - 4 1 +0 CH4_WASTE__6B $ROOT/CH4/v2014-09/v42_CH4.0.1x0.1.nc ch4_6B 2004-2008/1/1/0 C xy kg/m2/s CH4 - 4 1 + +### Residential biofuel ### +0 CH4_BIOFUEL__1A4 $ROOT/CH4/v2014-09/v42_CH4.0.1x0.1.nc ch4_1A4 2004-2008/1/1/0 C xy kg/m2/s CH4 - 5 1 + +### Other sectors ### +0 CH4_OTHER__1A1_1A2 $ROOT/CH4/v2014-09/v42_CH4.0.1x0.1.nc ch4_1A1_1A2 2004-2008/1/1/0 C xy kg/m2/s CH4 - 6 1 +0 CH4_OTHER__1A3a_c_d_e $ROOT/CH4/v2014-09/v42_CH4.0.1x0.1.nc ch4_1A3a_c_d_e 2004-2008/1/1/0 C xy kg/m2/s CH4 - 6 1 +0 CH4_OTHER__1A3b $ROOT/CH4/v2014-09/v42_CH4.0.1x0.1.nc ch4_1A3b 2004-2008/1/1/0 C xy kg/m2/s CH4 - 6 1 +0 CH4_OTHER__2 $ROOT/CH4/v2014-09/v42_CH4.0.1x0.1.nc ch4_2 2004-2008/1/1/0 C xy kg/m2/s CH4 - 6 1 +0 CH4_OTHER__7A $ROOT/CH4/v2014-09/v42_CH4.0.1x0.1.nc ch4_7A 2004-2008/1/1/0 C xy kg/m2/s CH4 - 6 1 + +0 CH4_SOILABSORBTION $ROOT/CH4/v2014-09/$RES/soilabs.geos.$RES.nc CH4 1985/1/1/0 C xy kg/m2/s CH4 1 7 1 +0 CH4_TERMITES $ROOT/CH4/v2014-09/$RES/termites.geos.$RES.nc CH4 1985/1/1/0 C xy kg/m2/s CH4 - 8 1 + +### Wetlands ### +0 CH4_WETL /see/ExtData.rc VAR 1985-2015/1-12/1/0 C xy kg/m2/s CH4 - 9 1 +)))CH4_EMISSIONS + +#======================================================================================================================================= +## --- Ship emissions --- +#======================================================================================================================================= +(((CEDS_SHIP +0 CEDS_CO_SHP /see/CO_ExtData.rc CO_shp 2014/1-12/1/0 C xyL=1:3 kg/m2/s CO 319 10 5 +0 CEDS_SOAP_SHP - - - - - - SOAP 280/319 10 5 +0 CEDS_SO2_SHP /see/SO2_ExtData.rc SO2_shp 2014/1-12/1/0 C xyL=1:3 kg/m2/s SO2 319 10 5 +0 CEDS_SO4_SHP - - - - - - SO4 63/319 10 5 +0 CEDS_pFe_SHP - - - - - - pFe 66/319 10 5 +0 CEDS_NH3_SHP /see/NH3_ExtData.rc NH3_shp 2014/1-12/1/0 C xyL=1:3 kg/m2/s NH3 319 10 5 +0 CEDS_BCPI_SHP /see/BC_ExtData.rc BC_shp 2014/1-12/1/0 C xyL=1:3 kg/m2/s BCPI 70/319 10 5 +0 CEDS_BCPO_SHP - - - - - - BCPO 71/319 10 5 +0 CEDS_OCPI_SHP /see/OC_ExtData.rc OC_shp 2014/1-12/1/0 C xyL=1:3 kg/m2/s OCPI 72/319 10 5 +0 CEDS_OCPO_SHP - - - - - - OCPO 73/319 10 5 +# Comment out CO2 for fullchem simulations: CO2 not advected +#0 CEDS_CO2_SHP /see/CO2_ExtData.rc CO2_shp 2014/1-12/1/0 C xyL=1:3 kg/m2/s CO2 319 10 5 +# Comment out CH4 for fullchem simulations: do not use CH4 emissions +# CEDS CH4 emissions are only available for 1970-2014 +#0 CEDS_CH4_SHP /see/CH4_ExtData.rc CH4_shp 1970-2014/1-12/1/0 C xyL=1:3 kg/m2/s CH4 319 10 5 +# NOTE: EOH files in CEDS/v2018-08 are actually VOC1 (total alchohols) and are split into MOH, EOH, ROH here +0 CEDS_MOH_SHP /see/EOH_ExtData.rc EOH_shp 2014/1-12/1/0 C xyL=1:3 kg/m2/s MOH 92/8/319 10 5 +0 CEDS_EOH_SHP - - - - - - EOH 93/9/319 10 5 +0 CEDS_ROH_SHP - - - - - - ROH 94/24/319 10 5 +0 CEDS_C2H6_SHP /see/C2H6_ExtData.rc C2H6_shp 2014/1-12/1/0 C xyL=1:3 kg/m2/s C2H6 319 10 5 +0 CEDS_C3H8_SHP /see/C3H8_ExtData.rc C3H8_shp 2014/1-12/1/0 C xyL=1:3 kg/m2/s C3H8 319 10 5 +0 CEDS_C4H10_SHP /see/ALK4_butanes_ExtData.rc ALK4_butanes_shp 2014/1-12/1/0 C xyL=1:3 kg/m2/s ALK4 10/319 10 5 +0 CEDS_C5H12_SHP /see/ALK4_pentanes_ExtData.rc ALK4_pentanes_shp 2014/1-12/1/0 C xyL=1:3 kg/m2/s ALK4 11/319 10 5 +0 CEDS_C6H14_SHP /see/ALK4_hexanes_ExtData.rc ALK4_hexanes_shp 2014/1-12/1/0 C xyL=1:3 kg/m2/s ALK4 12/319 10 5 +0 CEDS_C2H4_SHP /see/C2H4_ExtData.rc C2H4_shp 2014/1-12/1/0 C xyL=1:3 kg/m2/s C2H4 319 10 5 +0 CEDS_PRPE_SHP /see/PRPE_ExtData.rc PRPE_shp 2014/1-12/1/0 C xyL=1:3 kg/m2/s PRPE 319 10 5 +0 CEDS_C2H2_SHP /see/C2H2_ExtData.rc C2H2_shp 2014/1-12/1/0 C xyL=1:3 kg/m2/s C2H2 319 10 5 +0 CEDS_BENZ_SHP /see/BENZ_ExtData.rc BENZ_shp 2014/1-12/1/0 C xyL=1:3 kg/m2/s BENZ 319 10 5 +0 CEDS_TOLU_SHP /see/TOLU_ExtData.rc TOLU_shp 2014/1-12/1/0 C xyL=1:3 kg/m2/s TOLU 319 10 5 +0 CEDS_XYLE_SHP /see/XYLE_ExtData.rc XYLE_shp 2014/1-12/1/0 C xyL=1:3 kg/m2/s XYLE 319 10 5 +0 CEDS_CH2O_SHP /see/CH2O_ExtData.rc CH2O_shp 2014/1-12/1/0 C xyL=1:3 kg/m2/s CH2O 319 10 5 +0 CEDS_ALD2_SHP /see/ALD2_ExtData.rc ALD2_shp 2014/1-12/1/0 C xyL=1:3 kg/m2/s ALD2 15/319 10 5 +0 CEDS_MEK_SHP /see/MEK_ExtData.rc MEK_shp 2014/1-12/1/0 C xyL=1:3 kg/m2/s MEK 13/50/319 10 5 +0 CEDS_ACET_SHP /see/MEK_ExtData.rc MEK_shp 2014/1-12/1/0 C xyL=1:3 kg/m2/s ACET 14/51/319 10 5 +0 CEDS_HCOOH_SHP /see/HCOOH_ExtData.rc HCOOH_shp 2014/1-12/1/0 C xyL=1:3 kg/m2/s HCOOH 16/319 10 5 +#97 NOx ems as NO scale factor +#98 NOx ems as NO2 scale factor and #115 for mass conversion +0 CEDS_NO_SHP /see/NO_ExtData.rc NO_shp 2014/1-12/1/0 C xyL=1:3 kg/m2/s NO 97/319 10 5 +0 CEDS_NO2_SHP /see/NO_ExtData.rc NO_shp 2014/1-12/1/0 C xyL=1:3 kg/m2/s NO2 98/115/319 10 5 +)))CEDS_SHIP + +#======================================================================================================================================= +## --- AEIC aircraft emissions --- +#======================================================================================================================================= +(((AEIC +0 AEIC_NO ~/data/aeic_2005.geos.1x1.72L.nc NO 2005/1-12/1/0 C xyz kg/m2/s NO 110 20 1 +0 AEIC_CO ~/data/aeic_2005.geos.1x1.72L.nc CO 2005/1-12/1/0 C xyz kg/m2/s CO 110 20 1 +0 AEIC_SOAP - - - - - - SOAP 110/280 20 1 +0 AEIC_SO2 ~/data/aeic_2005.geos.1x1.72L.nc FUELBURN 2005/1-12/1/0 C xyz kg/m2/s SO2 111 20 1 +0 AEIC_SO4 - - - - - - SO4 112 20 1 +0 AEIC_BCPI - - - - - - BCPI 113 20 1 +0 AEIC_OCPI - - - - - - OCPI 113 20 1 +0 AEIC_ACET ~/data/aeic_2005.geos.1x1.72L.nc HC 2005/1-12/1/0 C xyz kg/m2/s ACET 114/101/40 20 1 +0 AEIC_ALD2 - - - - - - ALD2 114/102/41 20 1 +0 AEIC_ALK4 - - - - - - ALK4 114/103/42 20 1 +0 AEIC_C2H6 - - - - - - C2H6 114/104/45 20 1 +0 AEIC_C3H8 - - - - - - C3H8 114/105/46 20 1 +0 AEIC_CH2O - - - - - - CH2O 114/106 20 1 +0 AEIC_PRPE - - - - - - PRPE 114/107/49 20 1 +0 AEIC_MACR - - - - - - MACR 114/108/83 20 1 +0 AEIC_RCHO - - - - - - RCHO 114/109/69 20 1 +)))AEIC + +(((AEIC2019_MONMEAN +0 AEIC19_MONMEAN_NO $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc NO 2019/1-12/1/0 C xyz kg/m2/s NO 241/240 20 1 +0 AEIC19_MONMEAN_NO2 $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc NO2 2019/1-12/1/0 C xyz kg/m2/s NO2 241/240 20 1 +0 AEIC19_MONMEAN_HONO $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc HONO 2019/1-12/1/0 C xyz kg/m2/s HNO2 241/240 20 1 +0 AEIC19_MONMEAN_CO $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc CO 2019/1-12/1/0 C xyz kg/m2/s CO 241 20 1 +0 AEIC19_MONMEAN_SOAP - - - - - - SOAP 241/280 20 1 +0 AEIC19_MONMEAN_SO2 $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc FUELBURN 2019/1-12/1/0 C xyz kg/m2/s SO2 241/111 20 1 +0 AEIC19_MONMEAN_pFe - - - - - - pFe 241/111/66 20 1 +0 AEIC19_MONMEAN_SO4 - - - - - - SO4 241/112 20 1 +0 AEIC19_MONMEAN_H2O - - - - - - H2O 241/120 20 1 +0 AEIC19_MONMEAN_BCPI $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc BC 2019/1-12/1/0 C xyz kg/m2/s BCPI 241 20 1 +0 AEIC19_MONMEAN_OCPI $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc OC 2019/1-12/1/0 C xyz kg/m2/s OCPI 241 20 1 +0 AEIC19_MONMEAN_POG1 - - - - - - POG1 241/74/76 20 1 +0 AEIC19_MONMEAN_POG2 - - - - - - POG2 241/74/77 20 1 +0 AEIC19_MONMEAN_ACET $ROOT/AEIC2019/v2022-03/2019_monmean/AEIC_monmean_2019$MM.0.5x0.625.36L.nc HC 2019/1-12/1/0 C xyz kg/m2/s ACET 241/114/101 20 1 +0 AEIC19_MONMEAN_ALD2 - - - - - - ALD2 241/114/102 20 1 +0 AEIC19_MONMEAN_ALK4 - - - - - - ALK4 241/114/103 20 1 +0 AEIC19_MONMEAN_C2H6 - - - - - - C2H6 241/114/104 20 1 +0 AEIC19_MONMEAN_C3H8 - - - - - - C3H8 241/114/105 20 1 +0 AEIC19_MONMEAN_CH2O - - - - - - CH2O 241/114/106 20 1 +0 AEIC19_MONMEAN_PRPE - - - - - - PRPE 241/114/107 20 1 +0 AEIC19_MONMEAN_MACR - - - - - - MACR 241/114/108 20 1 +0 AEIC19_MONMEAN_RCHO - - - - - - RCHO 241/114/109 20 1 +)))AEIC2019_MONMEAN + +#============================================================================== +# --- Emissions from decaying plants --- +#============================================================================== +(((DECAYING_PLANTS +0 ALD2_PLANTDECAY $ROOT/ALD2/v2017-03/resp.geos.2x25.nc HET_RESP 1985/1-12/1/0 C xy kgC/m2/s ALD2 85/41 3 1 +0 EOH_PLANTDECAY - - - - - - EOH 86/47 3 1 +)))DECAYING_PLANTS + +#============================================================================== +# AFCID emissions turned off; put entry here if turning on +#============================================================================== +(((AFCID +0 PM25FINE_1 $ROOT/AFCID/v2018-04/PM25FINE_ECLIPSE_2015.geos.2x25.nc PM25FINE 2015/1-12/1/0 C xy kg/m2/s DST1 - 1 1 +)))AFCID + +#======================================================================================================================================= +# --- QFED biomass burning --- +#======================================================================================================================================= +(((QFED +# ACET +0 QFED_ACET_TF_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_acet.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s ACET 75/311/501 8 1 +0 QFED_ACET_TP_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_acet.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s ACET 75/311/314/502 8 1 +0 QFED_ACET_BO_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_acet.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s ACET 75/311/315/503 8 1 +0 QFED_ACET_SV_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_acet.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s ACET 75/311/504 8 1 +0 QFED_ACET_GL_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_acet.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s ACET 75/311/504 8 1 +0 QFED_ACET_TF_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_acet.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s ACET 75/312/501 8 1 +0 QFED_ACET_TP_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_acet.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s ACET 75/312/314/502 8 1 +0 QFED_ACET_BO_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_acet.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s ACET 75/312/315/503 8 1 +0 QFED_ACET_SV_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_acet.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s ACET 75/312/504 8 1 +0 QFED_ACET_GL_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_acet.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s ACET 75/312/504 8 1 +# ALD2 +0 QFED_ALD2_TF_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_ald2.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s ALD2 75/311/505 8 1 +0 QFED_ALD2_TP_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_ald2.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s ALD2 75/311/314/506 8 1 +0 QFED_ALD2_BO_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_ald2.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s ALD2 75/311/315/507 8 1 +0 QFED_ALD2_SV_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_ald2.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s ALD2 75/311/508 8 1 +0 QFED_ALD2_GL_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_ald2.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s ALD2 75/311/508 8 1 +0 QFED_ALD2_TF_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_ald2.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s ALD2 75/312/505 8 1 +0 QFED_ALD2_TP_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_ald2.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s ALD2 75/312/314/506 8 1 +0 QFED_ALD2_BO_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_ald2.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s ALD2 75/312/315/507 8 1 +0 QFED_ALD2_SV_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_ald2.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s ALD2 75/312/508 8 1 +0 QFED_ALD2_GL_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_ald2.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s ALD2 75/312/508 8 1 +# ALK4 +0 QFED_ALK4_TF_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_alk4.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s ALK4 75/311/509 8 1 +0 QFED_ALK4_TP_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_alk4.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s ALK4 75/311/314/510 8 1 +0 QFED_ALK4_BO_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_alk4.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s ALK4 75/311/315/511 8 1 +0 QFED_ALK4_SV_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_alk4.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s ALK4 75/311/512 8 1 +0 QFED_ALK4_GL_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_alk4.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s ALK4 75/311/512 8 1 +0 QFED_ALK4_TF_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_alk4.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s ALK4 75/312/509 8 1 +0 QFED_ALK4_TP_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_alk4.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s ALK4 75/312/314/510 8 1 +0 QFED_ALK4_BO_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_alk4.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s ALK4 75/312/315/511 8 1 +0 QFED_ALK4_SV_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_alk4.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s ALK4 75/312/512 8 1 +0 QFED_ALK4_GL_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_alk4.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s ALK4 75/312/512 8 1 +# BCPI/BCPO +0 QFED_BCPI_TF_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_bc.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s BCPI 70/75/311/513 8 1 +0 QFED_BCPO_TF_SFC - - - - - - BCPO 71/75/311/513 8 1 +0 QFED_BCPI_TP_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_bc.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s BCPI 70/75/311/314/514 8 1 +0 QFED_BCPO_TP_SFC - - - - - - BCPO 71/75/311/314/514 8 1 +0 QFED_BCPI_BO_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_bc.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s BCPI 70/75/311/315/515 8 1 +0 QFED_BCPO_BO_SFC - - - - - - BCPO 71/75/311/315/515 8 1 +0 QFED_BCPI_SV_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_bc.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s BCPI 70/75/311/516 8 1 +0 QFED_BCPO_SV_SFC - - - - - - BCPO 71/75/311/516 8 1 +0 QFED_BCPI_GL_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_bc.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s BCPI 70/75/311/516 8 1 +0 QFED_BCPO_GL_SFC - - - - - - BCPO 71/75/311/516 8 1 +0 QFED_BCPI_TF_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_bc.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s BCPI 70/75/312/513 8 1 +0 QFED_BCPO_TF_FT - - - - - - BCPO 71/75/312/513 8 1 +0 QFED_BCPI_TP_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_bc.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s BCPI 70/75/312/314/514 8 1 +0 QFED_BCPO_TP_FT - - - - - - BCPO 71/75/312/314/514 8 1 +0 QFED_BCPI_BO_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_bc.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s BCPI 70/75/312/315/515 8 1 +0 QFED_BCPO_BO_FT - - - - - - BCPO 71/75/312/315/515 8 1 +0 QFED_BCPI_SV_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_bc.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s BCPI 70/75/312/516 8 1 +0 QFED_BCPO_SV_FT - - - - - - BCPO 71/75/312/516 8 1 +0 QFED_BCPI_GL_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_bc.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s BCPI 70/75/312/516 8 1 +0 QFED_BCPO_GL_FT - - - - - - BCPO 71/75/312/516 8 1 +# OCPI/OCPO +0 QFED_OCPI_TF_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_oc.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s OCPI 72/75/311/313/517 8 1 +0 QFED_OCPO_TF_SFC - - - - - - OCPO 73/75/311/313/517 8 1 +0 QFED_OCPI_TP_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_oc.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s OCPI 72/75/311/313/314/518 8 1 +0 QFED_OCPO_TP_SFC - - - - - - OCPO 73/75/311/313/314/518 8 1 +0 QFED_OCPI_BO_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_oc.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s OCPI 72/75/311/313/315/519 8 1 +0 QFED_OCPO_BO_SFC - - - - - - OCPO 73/75/311/313/315/519 8 1 +0 QFED_OCPI_SV_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_oc.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s OCPI 72/75/311/313/520 8 1 +0 QFED_OCPO_SV_SFC - - - - - - OCPO 73/75/311/313/520 8 1 +0 QFED_OCPI_GL_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_oc.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s OCPI 72/75/311/313/520 8 1 +0 QFED_OCPO_GL_SFC - - - - - - OCPO 73/75/311/313/520 8 1 +0 QFED_OCPI_TF_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_oc.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s OCPI 72/75/312/313/517 8 1 +0 QFED_OCPO_TF_FT - - - - - - OCPO 73/75/312/313/517 8 1 +0 QFED_OCPI_TP_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_oc.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s OCPI 72/75/312/313/314/518 8 1 +0 QFED_OCPO_TP_FT - - - - - - OCPO 73/75/312/313/314/518 8 1 +0 QFED_OCPI_BO_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_oc.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s OCPI 72/75/312/313/315/519 8 1 +0 QFED_OCPO_BO_FT - - - - - - OCPO 73/75/312/313/315/519 8 1 +0 QFED_OCPI_SV_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_oc.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s OCPI 72/75/312/313/520 8 1 +0 QFED_OCPO_SV_FT - - - - - - OCPO 73/75/312/313/520 8 1 +0 QFED_OCPI_GL_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_oc.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s OCPI 72/75/312/313/520 8 1 +0 QFED_OCPO_GL_FT - - - - - - OCPO 73/75/312/313/520 8 1 +# C2H6 +0 QFED_C2H6_TF_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c2h6.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s C2H6 75/311/521 8 1 +0 QFED_C2H6_TP_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c2h6.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s C2H6 75/311/314/522 8 1 +0 QFED_C2H6_BO_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c2h6.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s C2H6 75/311/315/523 8 1 +0 QFED_C2H6_SV_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c2h6.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s C2H6 75/311/524 8 1 +0 QFED_C2H6_GL_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c2h6.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s C2H6 75/311/524 8 1 +0 QFED_C2H6_TF_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c2h6.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s C2H6 75/312/521 8 1 +0 QFED_C2H6_TP_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c2h6.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s C2H6 75/312/314/522 8 1 +0 QFED_C2H6_BO_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c2h6.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s C2H6 75/312/315/523 8 1 +0 QFED_C2H6_SV_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c2h6.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s C2H6 75/312/524 8 1 +0 QFED_C2H6_GL_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c2h6.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s C2H6 75/312/524 8 1 +# C3H8 +0 QFED_C3H8_TF_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c3h8.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s C3H8 75/311/525 8 1 +0 QFED_C3H8_TP_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c3h8.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s C3H8 75/311/314/526 8 1 +0 QFED_C3H8_BO_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c3h8.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s C3H8 75/311/315/527 8 1 +0 QFED_C3H8_SV_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c3h8.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s C3H8 75/311/528 8 1 +0 QFED_C3H8_GL_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c3h8.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s C3H8 75/311/528 8 1 +0 QFED_C3H8_TF_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c3h8.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s C3H8 75/312/525 8 1 +0 QFED_C3H8_TP_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c3h8.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s C3H8 75/312/314/526 8 1 +0 QFED_C3H8_BO_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c3h8.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s C3H8 75/312/315/527 8 1 +0 QFED_C3H8_SV_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c3h8.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s C3H8 75/312/528 8 1 +0 QFED_C3H8_GL_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c3h8.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s C3H8 75/312/528 8 1 +# CH2O +0 QFED_CH2O_TF_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_ch2o.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s CH2O 75/311/529 8 1 +0 QFED_CH2O_TP_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_ch2o.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s CH2O 75/311/314/530 8 1 +0 QFED_CH2O_BO_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_ch2o.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s CH2O 75/311/315/531 8 1 +0 QFED_CH2O_SV_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_ch2o.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s CH2O 75/311/532 8 1 +0 QFED_CH2O_GL_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_ch2o.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s CH2O 75/311/532 8 1 +0 QFED_CH2O_TF_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_ch2o.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s CH2O 75/312/529 8 1 +0 QFED_CH2O_TP_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_ch2o.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s CH2O 75/312/314/530 8 1 +0 QFED_CH2O_BO_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_ch2o.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s CH2O 75/312/315/531 8 1 +0 QFED_CH2O_SV_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_ch2o.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s CH2O 75/312/532 8 1 +0 QFED_CH2O_GL_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_ch2o.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s CH2O 75/312/532 8 1 +# CO/SOAP/PRPE/MTPA/BENZ/TOLU/XYLE/EOH/MOH +0 QFED_CO_TF_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_co.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s CO 54/75/311/533 8 1 +0 QFED_SOAP_TF_SFC - - - - - - SOAP 54/75/281/311/533 8 1 +0 QFED_MTPA_TF_SFC - - - - - - MTPA 54/75/564/311/533 8 1 +0 QFED_BENZ_TF_SFC - - - - - - BENZ 54/75/568/311/533 8 1 +0 QFED_TOLU_TF_SFC - - - - - - TOLU 54/75/572/311/533 8 1 +0 QFED_XYLE_TF_SFC - - - - - - XYLE 54/75/576/311/533 8 1 +0 QFED_EOH_TF_SFC - - - - - - EOH 54/75/580/311/533 8 1 +0 QFED_MOH_TF_SFC - - - - - - MOH 54/75/584/311/533 8 1 +0 QFED_CO_TP_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_co.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s CO 54/75/311/314/534 8 1 +0 QFED_SOAP_TP_SFC - - - - - - SOAP 54/75/281/311/314/534 8 1 +0 QFED_MTPA_TP_SFC - - - - - - MTPA 54/75/565/311/314/534 8 1 +0 QFED_BENZ_TP_SFC - - - - - - BENZ 54/75/569/311/314/534 8 1 +0 QFED_TOLU_TP_SFC - - - - - - TOLU 54/75/573/311/314/534 8 1 +0 QFED_XYLE_TP_SFC - - - - - - XYLE 54/75/577/311/314/534 8 1 +0 QFED_EOH_TP_SFC - - - - - - EOH 54/75/581/311/314/534 8 1 +0 QFED_MOH_TP_SFC - - - - - - MOH 54/75/585/311/314/534 8 1 +0 QFED_CO_BO_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_co.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s CO 54/75/311/315/535 8 1 +0 QFED_SOAP_BO_SFC - - - - - - SOAP 54/75/281/311/315/535 8 1 +0 QFED_MTPA_BO_SFC - - - - - - MTPA 54/75/566/311/315/535 8 1 +0 QFED_BENZ_BO_SFC - - - - - - BENZ 54/75/570/311/315/535 8 1 +0 QFED_TOLU_BO_SFC - - - - - - TOLU 54/75/574/311/315/535 8 1 +0 QFED_XYLE_BO_SFC - - - - - - XYLE 54/75/578/311/315/535 8 1 +0 QFED_EOH_BO_SFC - - - - - - EOH 54/75/582/311/315/535 8 1 +0 QFED_MOH_BO_SFC - - - - - - MOH 54/75/586/311/315/535 8 1 +0 QFED_CO_SV_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_co.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s CO 54/75/311/536 8 1 +0 QFED_SOAP_SV_SFC - - - - - - SOAP 54/75/281/311/536 8 1 +0 QFED_MTPA_SV_SFC - - - - - - MTPA 54/75/567/311/536 8 1 +0 QFED_BENZ_SV_SFC - - - - - - BENZ 54/75/571/311/536 8 1 +0 QFED_TOLU_SV_SFC - - - - - - TOLU 54/75/575/311/536 8 1 +0 QFED_XYLE_SV_SFC - - - - - - XYLE 54/75/579/311/536 8 1 +0 QFED_EOH_SV_SFC - - - - - - EOH 54/75/583/311/536 8 1 +0 QFED_MOH_SV_SFC - - - - - - MOH 54/75/587/311/536 8 1 +0 QFED_CO_GL_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_co.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s CO 54/75/311/536 8 1 +0 QFED_SOAP_GL_SFC - - - - - - SOAP 54/75/281/311/536 8 1 +0 QFED_MTPA_GL_SFC - - - - - - MTPA 54/75/567/311/536 8 1 +0 QFED_BENZ_GL_SFC - - - - - - BENZ 54/75/571/311/536 8 1 +0 QFED_TOLU_GL_SFC - - - - - - TOLU 54/75/575/311/536 8 1 +0 QFED_XYLE_GL_SFC - - - - - - XYLE 54/75/579/311/536 8 1 +0 QFED_EOH_GL_SFC - - - - - - EOH 54/75/583/311/536 8 1 +0 QFED_MOH_GL_SFC - - - - - - MOH 54/75/587/311/536 8 1 +0 QFED_CO_TF_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_co.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s CO 54/75/312/533 8 1 +0 QFED_SOAP_TF_FT - - - - - - SOAP 54/75/281/312/533 8 1 +0 QFED_MTPA_TF_FT - - - - - - MTPA 54/75/564/312/533 8 1 +0 QFED_BENZ_TF_FT - - - - - - BENZ 54/75/568/312/533 8 1 +0 QFED_TOLU_TF_FT - - - - - - TOLU 54/75/572/312/533 8 1 +0 QFED_XYLE_TF_FT - - - - - - XYLE 54/75/576/312/533 8 1 +0 QFED_EOH_TF_FT - - - - - - EOH 54/75/580/312/533 8 1 +0 QFED_MOH_TF_FT - - - - - - MOH 54/75/584/312/533 8 1 +0 QFED_CO_TP_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_co.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s CO 54/75/312/314/534 8 1 +0 QFED_SOAP_TP_FT - - - - - - SOAP 54/75/281/312/314/534 8 1 +0 QFED_MTPA_TP_FT - - - - - - MTPA 54/75/565/312/314/534 8 1 +0 QFED_BENZ_TP_FT - - - - - - BENZ 54/75/569/312/314/534 8 1 +0 QFED_TOLU_TP_FT - - - - - - TOLU 54/75/573/312/314/534 8 1 +0 QFED_XYLE_TP_FT - - - - - - XYLE 54/75/577/312/314/534 8 1 +0 QFED_EOH_TP_FT - - - - - - EOH 54/75/581/312/314/534 8 1 +0 QFED_MOH_TP_FT - - - - - - MOH 54/75/585/312/314/534 8 1 +0 QFED_CO_BO_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_co.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s CO 54/75/312/315/535 8 1 +0 QFED_SOAP_BO_FT - - - - - - SOAP 54/75/281/312/315/535 8 1 +0 QFED_MTPA_BO_FT - - - - - - MTPA 54/75/566/312/315/535 8 1 +0 QFED_BENZ_BO_FT - - - - - - BENZ 54/75/570/312/315/535 8 1 +0 QFED_TOLU_BO_FT - - - - - - TOLU 54/75/574/312/315/535 8 1 +0 QFED_XYLE_BO_FT - - - - - - XYLE 54/75/578/312/315/535 8 1 +0 QFED_EOH_BO_FT - - - - - - EOH 54/75/582/312/315/535 8 1 +0 QFED_MOH_BO_FT - - - - - - MOH 54/75/586/312/315/535 8 1 +0 QFED_CO_SV_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_co.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s CO 54/75/312/536 8 1 +0 QFED_SOAP_SV_FT - - - - - - SOAP 54/75/281/312/536 8 1 +0 QFED_MTPA_SV_FT - - - - - - MTPA 54/75/567/312/536 8 1 +0 QFED_BENZ_SV_FT - - - - - - BENZ 54/75/571/312/536 8 1 +0 QFED_TOLU_SV_FT - - - - - - TOLU 54/75/575/312/536 8 1 +0 QFED_XYLE_SV_FT - - - - - - XYLE 54/75/579/312/536 8 1 +0 QFED_EOH_SV_FT - - - - - - EOH 54/75/583/312/536 8 1 +0 QFED_MOH_SV_FT - - - - - - MOH 54/75/587/312/536 8 1 +0 QFED_CO_GL_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_co.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s CO 54/75/312/536 8 1 +0 QFED_SOAP_GL_FT - - - - - - SOAP 54/75/281/312/536 8 1 +0 QFED_MTPA_GL_FT - - - - - - MTPA 54/75/567/312/536 8 1 +0 QFED_BENZ_GL_FT - - - - - - BENZ 54/75/571/312/536 8 1 +0 QFED_TOLU_GL_FT - - - - - - TOLU 54/75/575/312/536 8 1 +0 QFED_XYLE_GL_FT - - - - - - XYLE 54/75/579/312/536 8 1 +0 QFED_EOH_GL_FT - - - - - - EOH 54/75/583/312/536 8 1 +0 QFED_MOH_GL_FT - - - - - - MOH 54/75/587/312/536 8 1 +# MEK +0 QFED_MEK_TF_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_mek.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s MEK 75/311/537 8 1 +0 QFED_MEK_TP_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_mek.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s MEK 75/311/314/538 8 1 +0 QFED_MEK_BO_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_mek.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s MEK 75/311/315/539 8 1 +0 QFED_MEK_GL_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_mek.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s MEK 75/311/540 8 1 +0 QFED_MEK_SV_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_mek.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s MEK 75/311/540 8 1 +0 QFED_MEK_TF_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_mek.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s MEK 75/312/537 8 1 +0 QFED_MEK_TP_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_mek.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s MEK 75/312/314/538 8 1 +0 QFED_MEK_BO_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_mek.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s MEK 75/312/315/539 8 1 +0 QFED_MEK_GL_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_mek.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s MEK 75/312/540 8 1 +0 QFED_MEK_SV_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_mek.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s MEK 75/312/540 8 1 +# NH3 +0 QFED_NH3_TF_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_nh3.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s NH3 75/311/541 8 1 +0 QFED_NH3_TP_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_nh3.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s NH3 75/311/314/542 8 1 +0 QFED_NH3_BO_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_nh3.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s NH3 75/311/315/543 8 1 +0 QFED_NH3_GL_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_nh3.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s NH3 75/311/544 8 1 +0 QFED_NH3_SV_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_nh3.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s NH3 75/311/544 8 1 +0 QFED_NH3_TF_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_nh3.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s NH3 75/312/541 8 1 +0 QFED_NH3_TP_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_nh3.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s NH3 75/312/314/542 8 1 +0 QFED_NH3_BO_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_nh3.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s NH3 75/312/315/543 8 1 +0 QFED_NH3_GL_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_nh3.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s NH3 75/312/544 8 1 +0 QFED_NH3_SV_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_nh3.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s NH3 75/312/544 8 1 +# NO/PAN/HNO3 +0 QFED_NO_TF_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_tf 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s NO 75/311/545/592 8 1 +0 QFED_PAN_TF_SFC - - - - - - PAN 75/311/545/593 8 1 +0 QFED_HNO3_TF_SFC - - - - - - HNO3 75/311/545/594 8 1 +0 QFED_NO_TP_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_xf 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s NO 75/311/314/546/592 8 1 +0 QFED_PAN_TP_SFC - - - - - - PAN 75/311/314/546/593 8 1 +0 QFED_HNO3_TP_SFC - - - - - - HNO3 75/311/314/546/594 8 1 +0 QFED_NO_BO_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_xf 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s NO 75/311/315/547/592 8 1 +0 QFED_PAN_BO_SFC - - - - - - PAN 75/311/315/547/593 8 1 +0 QFED_HNO3_BO_SFC - - - - - - HNO3 75/311/315/547/594 8 1 +0 QFED_NO_SV_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_sv 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s NO 75/311/548/592 8 1 +0 QFED_PAN_SV_SFC - - - - - - PAN 75/311/548/593 8 1 +0 QFED_HNO3_SV_SFC - - - - - - HNO3 75/311/548/594 8 1 +0 QFED_NO_GL_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_gl 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s NO 75/311/548/592 8 1 +0 QFED_PAN_GL_SFC - - - - - - PAN 75/311/548/593 8 1 +0 QFED_HNO3_GL_SFC - - - - - - HNO3 75/311/548/594 8 1 +0 QFED_NO_TF_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_tf 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s NO 75/312/545/592 8 1 +0 QFED_PAN_TF_FT - - - - - - PAN 75/312/545/593 8 1 +0 QFED_HNO3_TF_FT - - - - - - HNO3 75/312/545/594 8 1 +0 QFED_NO_TP_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_xf 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s NO 75/312/314/546/592 8 1 +0 QFED_PAN_TP_FT - - - - - - PAN 75/312/314/546/593 8 1 +0 QFED_HNO3_TP_FT - - - - - - HNO3 75/312/314/546/594 8 1 +0 QFED_NO_BO_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_xf 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s NO 75/312/315/547/592 8 1 +0 QFED_PAN_BO_FT - - - - - - PAN 75/312/315/547/593 8 1 +0 QFED_HNO3_BO_FT - - - - - - HNO3 75/312/315/547/594 8 1 +0 QFED_NO_SV_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_sv 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s NO 75/312/548/592 8 1 +0 QFED_PAN_SV_FT - - - - - - PAN 75/312/548/593 8 1 +0 QFED_HNO3_SV_FT - - - - - - HNO3 75/312/548/594 8 1 +0 QFED_NO_GL_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_no.006.$YYYY$MM$DD.nc4 biomass_gl 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s NO 75/312/548/592 8 1 +0 QFED_PAN_GL_FT - - - - - - PAN 75/312/548/593 8 1 +0 QFED_HNO3_GL_FT - - - - - - HNO3 75/312/548/594 8 1 +# SO2 +0 QFED_SO2_TF_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_so2.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s SO2 75/311/549 8 1 +0 QFED_SO2_TP_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_so2.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s SO2 75/311/314/550 8 1 +0 QFED_SO2_BO_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_so2.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s SO2 75/311/315/551 8 1 +0 QFED_SO2_SV_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_so2.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s SO2 75/311/552 8 1 +0 QFED_SO2_GL_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_so2.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s SO2 75/311/552 8 1 +0 QFED_SO2_TF_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_so2.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s SO2 75/312/549 8 1 +0 QFED_SO2_TP_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_so2.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s SO2 75/312/314/550 8 1 +0 QFED_SO2_BO_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_so2.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s SO2 75/312/315/551 8 1 +0 QFED_SO2_SV_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_so2.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s SO2 75/312/552 8 1 +0 QFED_SO2_GL_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_so2.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s SO2 75/312/552 8 1 +# PRPE +0 QFED_PRPE_TF_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c3h6.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s PRPE 75/311/588 8 1 +0 QFED_PRPE_TP_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c3h6.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s PRPE 75/311/314/589 8 1 +0 QFED_PRPE_BO_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c3h6.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s PRPE 75/311/315/590 8 1 +0 QFED_PRPE_SV_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c3h6.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s PRPE 75/311/591 8 1 +0 QFED_PRPE_GL_SFC $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c3h6.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=1:PBL kg/m2/s PRPE 75/311/591 8 1 +0 QFED_PRPE_TF_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c3h6.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s PRPE 75/312/588 8 1 +0 QFED_PRPE_TP_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c3h6.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s PRPE 75/312/314/589 8 1 +0 QFED_PRPE_BO_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c3h6.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s PRPE 75/312/315/590 8 1 +0 QFED_PRPE_SV_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c3h6.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s PRPE 75/312/591 8 1 +0 QFED_PRPE_GL_FT $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_c3h6.006.$YYYY$MM$DD.nc4 biomass 2000-2018/1-12/1-31/0 C xyL=PBL:5500m kg/m2/s PRPE 75/312/591 8 1 +# MTPA +# --> approximated above using CO +# BENZ +# --> approximated above using CO +# TOLU +# --> approximated above using CO +# XYLE +# --> approximated above using CO +# EOH +# --> approximated above using CO +# MOH +# --> approximated above using CO +)))QFED + +#======================================================================================================================================= +## --- Trash emissions --- +#======================================================================================================================================= +(((TRASH +0 TRASH_CO $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc CO 2008/1/1/0 C xy kg/m2/s CO - 9 1 +0 TRASH_SOAP - - - - - - SOAP 280 9 1 +0 TRASH_NO $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc NO 2008/1/1/0 C xy kg/m2/s NO - 9 1 +0 TRASH_SO2 $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc SO2 2008/1/1/0 C xy kg/m2/s SO2 78 9 1 +0 TRASH_SO4 - - - - - - SO4 63 9 1 +0 TRASH_pFe - - - - - - pFe 78/66 9 1 +0 TRASH_NH3 $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc NH3 2008/1/1/0 C xy kg/m2/s NH3 - 9 1 +0 TRASH_ACET $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc ACET 2008/1/1/0 C xy kg/m2/s ACET 40 9 1 +0 TRASH_ISOP $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc ISOP 2008/1/1/0 C xy kg/m2/s ISOP 61 9 1 +0 TRASH_MEK $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc MEK 2008/1/1/0 C xy kg/m2/s MEK 48 9 1 +0 TRASH_ALD2 $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc ALD2 2008/1/1/0 C xy kg/m2/s ALD2 41 9 1 +0 TRASH_MVK $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc MVK 2008/1/1/0 C xy kg/m2/s MVK 80 9 1 +0 TRASH_PRPE $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc PRPE 2008/1/1/0 C xy kg/m2/s PRPE 49 9 1 +0 TRASH_CH2O $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc CH2O 2008/1/1/0 C xy kg/m2/s CH2O - 9 1 +0 TRASH_HAC $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc HAC 2008/1/1/0 C xy kg/m2/s HAC 81 9 1 +0 TRASH_GLYC $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc GLYC 2008/1/1/0 C xy kg/m2/s GLYC 82 9 1 +#0 TRASH_MOH $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc MOH 2008/1/1/0 C xy kg/m2/s MOH - 9 1 +#0 TRASH_C2H2 $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc C2H2 2008/1/1/0 C xy kg/m2/s C2H2 - 9 1 +#0 TRASH_C2H4 $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc C2H4 2008/1/1/0 C xy kg/m2/s C2H4 - 9 1 +0 TRASH_BENZ $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc BENZ 2008/1/1/0 C xy kg/m2/s BENZ 43 9 1 +0 TRASH_TOLU $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc TOLU 2008/1/1/0 C xy kg/m2/s TOLU 55 9 1 +0 TRASH_XYLE $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc XYLE 2008/1/1/0 C xy kg/m2/s XYLE 56 9 1 +0 TRASH_HCOOH $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc HCOOH 2008/1/1/0 C xy kg/m2/s HCOOH 68 9 1 +0 TRASH_BCPI $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc BC 2008/1/1/0 C xy kg/m2/s BCPI 70 9 1 +0 TRASH_BCPO - - - - - - BCPO 71 9 1 +0 TRASH_OCPI $ROOT/TrashEmis/v2015-03/TrashBurn_v2_generic.01x01.nc OC 2008/1/1/0 C xy kg/m2/s OCPI 72 9 1 +0 TRASH_OCPO - - - - - - OCPO 73 9 1 +)))TRASH + +#======================================================================================================================================= +# --- Seawater concentrations for oceanic emissions (Extension 101) --- +#======================================================================================================================================= +#101 CH3I_SEAWATER $ROOT/CH3I/v2014-07/ocean_ch3i.geos.4x5.nc CH3I_OCEAN 1985/1-12/1/0 C xy kg/m3 CH3I - 1 1 +101 DMS_SEAWATER $ROOT/DMS/v2015-07/DMS_lana.geos.1x1.nc DMS_OCEAN 1985/1-12/1/0 C xy kg/m3 DMS - 1 1 +101 ACET_SEAWATER $ROOT/ACET/v2014-07/ACET_seawater.generic.1x1.nc ACET 2005/1/1/0 C xy kg/m3 ACET 40 1 1 +101 ALD2_SEAWATER $ROOT/ALD2/v2017-03/ALD2_seawater.geos.2x25.nc ALD2 2006/1-12/1/0 C xy kg/m3 ALD2 41 1 1 +101 MENO3_SEAWATER $ROOT/RONO2/v2019-05/RONO2_seawater.geos.2x25.nc MENO3 2006/1-12/1/0 C xy kg/m3 MENO3 - 1 1 +101 ETNO3_SEAWATER $ROOT/RONO2/v2019-05/RONO2_seawater.geos.2x25.nc ETNO3 2006/1-12/1/0 C xy kg/m3 ETNO3 - 1 1 +101 MOH_SEAWATER $ROOT/MOH/v2019-12/MOH_seawater.low.kgCm3.generic.1x1.nc MOH 2005/1/1/0 C xy kgC/m3 MOH - 1 1 + +#======================================================================================================================================= +# --- SOILNOX emissions (Extension 104) --- +#======================================================================================================================================= +104 SOILNOX_FERT ~/data/soilNOx.fert_res.generic.05x05.nc FERT 2000/1-12/1-31/0 C xy kg/m2 NO - 1 1 +104 SOILNOX_LANDK1 ~/data/soilNOx.landtype.generic.025x025.nc LANDFRAC_K01 2000/1/1/0 C xy unitless NO - 1 1 +104 SOILNOX_LANDK2 ~/data/soilNOx.landtype.generic.025x025.nc LANDFRAC_K02 2000/1/1/0 C xy unitless NO - 1 1 +104 SOILNOX_LANDK3 ~/data/soilNOx.landtype.generic.025x025.nc LANDFRAC_K03 2000/1/1/0 C xy unitless NO - 1 1 +104 SOILNOX_LANDK4 ~/data/soilNOx.landtype.generic.025x025.nc LANDFRAC_K04 2000/1/1/0 C xy unitless NO - 1 1 +104 SOILNOX_LANDK5 ~/data/soilNOx.landtype.generic.025x025.nc LANDFRAC_K05 2000/1/1/0 C xy unitless NO - 1 1 +104 SOILNOX_LANDK6 ~/data/soilNOx.landtype.generic.025x025.nc LANDFRAC_K06 2000/1/1/0 C xy unitless NO - 1 1 +104 SOILNOX_LANDK7 ~/data/soilNOx.landtype.generic.025x025.nc LANDFRAC_K07 2000/1/1/0 C xy unitless NO - 1 1 +104 SOILNOX_LANDK8 ~/data/soilNOx.landtype.generic.025x025.nc LANDFRAC_K08 2000/1/1/0 C xy unitless NO - 1 1 +104 SOILNOX_LANDK9 ~/data/soilNOx.landtype.generic.025x025.nc LANDFRAC_K09 2000/1/1/0 C xy unitless NO - 1 1 +104 SOILNOX_LANDK10 ~/data/soilNOx.landtype.generic.025x025.nc LANDFRAC_K10 2000/1/1/0 C xy unitless NO - 1 1 +104 SOILNOX_LANDK11 ~/data/soilNOx.landtype.generic.025x025.nc LANDFRAC_K11 2000/1/1/0 C xy unitless NO - 1 1 +104 SOILNOX_LANDK12 ~/data/soilNOx.landtype.generic.025x025.nc LANDFRAC_K12 2000/1/1/0 C xy unitless NO - 1 1 +104 SOILNOX_LANDK13 ~/data/soilNOx.landtype.generic.025x025.nc LANDFRAC_K13 2000/1/1/0 C xy unitless NO - 1 1 +104 SOILNOX_LANDK14 ~/data/soilNOx.landtype.generic.025x025.nc LANDFRAC_K14 2000/1/1/0 C xy unitless NO - 1 1 +104 SOILNOX_LANDK15 ~/data/soilNOx.landtype.generic.025x025.nc LANDFRAC_K15 2000/1/1/0 C xy unitless NO - 1 1 +104 SOILNOX_LANDK16 ~/data/soilNOx.landtype.generic.025x025.nc LANDFRAC_K16 2000/1/1/0 C xy unitless NO - 1 1 +104 SOILNOX_LANDK17 ~/data/soilNOx.landtype.generic.025x025.nc LANDFRAC_K17 2000/1/1/0 C xy unitless NO - 1 1 +104 SOILNOX_LANDK18 ~/data/soilNOx.landtype.generic.025x025.nc LANDFRAC_K18 2000/1/1/0 C xy unitless NO - 1 1 +104 SOILNOX_LANDK19 ~/data/soilNOx.landtype.generic.025x025.nc LANDFRAC_K19 2000/1/1/0 C xy unitless NO - 1 1 +104 SOILNOX_LANDK20 ~/data/soilNOx.landtype.generic.025x025.nc LANDFRAC_K20 2000/1/1/0 C xy unitless NO - 1 1 +104 SOILNOX_LANDK21 ~/data/soilNOx.landtype.generic.025x025.nc LANDFRAC_K21 2000/1/1/0 C xy unitless NO - 1 1 +104 SOILNOX_LANDK22 ~/data/soilNOx.landtype.generic.025x025.nc LANDFRAC_K22 2000/1/1/0 C xy unitless NO - 1 1 +104 SOILNOX_LANDK23 ~/data/soilNOx.landtype.generic.025x025.nc LANDFRAC_K23 2000/1/1/0 C xy unitless NO - 1 1 +104 SOILNOX_LANDK24 ~/data/soilNOx.landtype.generic.025x025.nc LANDFRAC_K24 2000/1/1/0 C xy unitless NO - 1 1 +104 SOILNOX_ARID ~/data/soilNOx.climate.generic.05x05.nc ARID 2000/1/1/0 C xy unitless NO - 1 1 +104 SOILNOX_NONARID ~/data/soilNOx.climate.generic.05x05.nc NON_ARID 2000/1/1/0 C xy unitless NO - 1 1 + +#======================================================================================================================================= +# --- dust emissions using DEAD model (Extension 105) --- +#======================================================================================================================================= +105 DEAD_EF_GEO ~/data/dst_tibds.geos.2x25.nc EF_GEO 1985/1/1/0 C xy factor * - 1 1 +105 DEAD_LF_DRY ~/data/dst_tibds.geos.2x25.nc LF_DRY 1985/1/1/0 C xy factor * - 1 1 +105 DEAD_MF_CACO3 ~/data/dst_tibds.geos.2x25.nc MF_CaCO3 1985/1/1/0 C xy fraction * - 1 1 +105 DEAD_MF_CLY ~/data/dst_tibds.geos.2x25.nc MF_CLY 1985/1/1/0 C xy fraction * - 1 1 +105 DEAD_MF_SND ~/data/dst_tibds.geos.2x25.nc MF_SND 1985/1/1/0 C xy fraction * - 1 1 +105 DEAD_SFC_TYP ~/data/dst_tibds.geos.2x25.nc SFC_TYP 1985/1/1/0 C xy count * - 1 1 +105 DEAD_GOC_SRC ~/data/GOCART_src_fn.geos.2x25.nc GOC_SRC 1985/1/1/0 C xy unitless * - 1 1 +105 DEAD_VAI ~/data/dst_tvbds.geos.2x25.nc VAI 1985/1-12/1/0 C xy unitless * - 1 1 + + +#============================================================================== +# --- Sea salt emissions (Extensions 107 and 130) +# +# MODIS Chlorophyll-A fields used for emissions of marine organic aerosols +#============================================================================== +(((SeaSalt +#107 MODIS_CHLR ~/data/MODIS_CHLR/v2019-11/MODIS.CHLRv.V5.generic.025x025.$YYYY.nc MODIS 2005-2014/1-12/1/0 C xy 1 * - 1 1 +107 MULTISEAICE ~/data/MULTI_ICE/v2021-07/multiyearice.merra2.05x0625.$YYYY.nc FRSEAICE 1984-2017/1-12/1-31/0 C xy 1 * - 1 1 +)))SeaSalt + +#======================================================================================================================================= +# --- MEGAN biogenic emissions (Extension 108) +#======================================================================================================================================= +# NOTE: These are the base emissions, which will be converted to kgC/m2/s by HEMCO. The specified species (OCPI/ISOP/ACET) are required +# for proper unit conversion. Since netCDF files are already in mass carbon (ug(C)), the only important thing is to specify a VOC +# with a specified MW of 12g/mol. This is the case for OCPI, ISOP and ACET. +(((MEGAN +(((HEMCO_RESTART +108 T_DAVG ./HEMCO_restart.$YYYY$MM$DD$HH00.nc T_DAVG $YYYY/$MM/$DD/$HH EY xy K * - 1 1 +108 T_PREVDAY ./HEMCO_restart.$YYYY$MM$DD$HH00.nc T_PREVDAY $YYYY/$MM/$DD/$HH EY xy K * - 1 1 +108 LAI_PREVDAY ./HEMCO_restart.$YYYY$MM$DD$HH00.nc LAI_PREVDAY $YYYY/$MM/$DD/$HH EY xy 1 * - 1 1 +108 PARDR_DAVG ./HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDR_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 +108 PARDF_DAVG ./HEMCO_restart.$YYYY$MM$DD$HH00.nc PARDF_DAVG $YYYY/$MM/$DD/$HH EY xy W/m2 * - 1 1 +)))HEMCO_RESTART +108 MEGAN_AEF_ISOP_GCC ~/data/MEGAN2.1_EF.geos.1x1.nc AEF_ISOPRENE 1985/1/1/0 C xy kgC/m2/s * - 1 1 +108 MEGAN_AEF_MBOX_GCC ~/data/MEGAN2.1_EF.geos.1x1.nc AEF_MBO 1985/1/1/0 C xy kgC/m2/s * - 1 1 +108 MEGAN_AEF_BPIN_GCC ~/data/MEGAN2.1_EF.geos.1x1.nc AEF_BETA_PINENE 1985/1/1/0 C xy kgC/m2/s * - 1 1 +108 MEGAN_AEF_CARE_GCC ~/data/MEGAN2.1_EF.geos.1x1.nc AEF_CARENE 1985/1/1/0 C xy kgC/m2/s * - 1 1 +108 MEGAN_AEF_LIMO_GCC ~/data/MEGAN2.1_EF.geos.1x1.nc AEF_LIMONENE 1985/1/1/0 C xy kgC/m2/s * - 1 1 +108 MEGAN_AEF_OCIM_GCC ~/data/MEGAN2.1_EF.geos.1x1.nc AEF_OCIMENE 1985/1/1/0 C xy kgC/m2/s * - 1 1 +108 MEGAN_AEF_SABI_GCC ~/data/MEGAN2.1_EF.geos.1x1.nc AEF_SABINENE 1985/1/1/0 C xy kgC/m2/s * - 1 1 +108 CLM4_PFT_BARE_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_BARE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_NDLF_EVGN_TMPT_TREE_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_NDLF_EVGN_TMPT_TREE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_NDLF_EVGN_BORL_TREE_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_NDLF_EVGN_BORL_TREE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_NDLF_DECD_BORL_TREE_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_NDLF_DECD_BORL_TREE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_BDLF_EVGN_TROP_TREE_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_BDLF_EVGN_TROP_TREE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_BDLF_EVGN_TMPT_TREE_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_BDLF_EVGN_TMPT_TREE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_BDLF_DECD_TROP_TREE_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_BDLF_DECD_TROP_TREE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_BDLF_DECD_TMPT_TREE_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_BDLF_DECD_TMPT_TREE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_BDLF_DECD_BORL_TREE_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_BDLF_DECD_BORL_TREE 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_BDLF_EVGN_SHRB_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_BDLF_EVGN_SHRB 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_BDLF_DECD_TMPT_SHRB_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_BDLF_DECD_TMPT_SHRB 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_BDLF_DECD_BORL_SHRB_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_BDLF_DECD_BORL_SHRB 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_C3_ARCT_GRSS_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_C3_ARCT_GRSS 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_C3_NARC_GRSS_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_C3_NARC_GRSS 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_C4_GRSS_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_C4_GRSS 2000/1/1/0 C xy 1 * - 1 1 +108 CLM4_PFT_CROP_GCC ~/data/CLM4_PFT.geos.1x1.nc PFT_CROP 2000/1/1/0 C xy 1 * - 1 1 +108 MEGAN_ORVC_GCC ~/data/NVOC.geos.1x1.nc OCPI 1990/1-12/1/0 C xy kgC/m2/s * - 1 1 +)))MEGAN + +#============================================================================== +# --- GFED biomass burning emissions (Extension 111) +# NOTE: These are the base emissions in kgDM/m2/s. +#============================================================================== + +(((GFED3 +111 GFED_HUMTROP $ROOT/GFED3/v2014-10/GFED3_humtropmap.nc humtrop 2000/1/1/0 C xy unitless * - 1 1 +111 GFED_WDL $ROOT/GFED3/v2014-10/GFED3_gen.1x1.$YYYY.nc GFED3_BB__WDL_DM 1997-2011/1-12/01/0 C xy kgDM/m2/s * - 1 1 +111 GFED_AGW $ROOT/GFED3/v2014-10/GFED3_gen.1x1.$YYYY.nc GFED3_BB__AGW_DM 1997-2011/1-12/01/0 C xy kgDM/m2/s * - 1 1 +111 GFED_DEF $ROOT/GFED3/v2014-10/GFED3_gen.1x1.$YYYY.nc GFED3_BB__DEF_DM 1997-2011/1-12/01/0 C xy kgDM/m2/s * - 1 1 +111 GFED_FOR $ROOT/GFED3/v2014-10/GFED3_gen.1x1.$YYYY.nc GFED3_BB__FOR_DM 1997-2011/1-12/01/0 C xy kgDM/m2/s * - 1 1 +111 GFED_PET $ROOT/GFED3/v2014-10/GFED3_gen.1x1.$YYYY.nc GFED3_BB__PET_DM 1997-2011/1-12/01/0 C xy kgDM/m2/s * - 1 1 +111 GFED_SAV $ROOT/GFED3/v2014-10/GFED3_gen.1x1.$YYYY.nc GFED3_BB__SAV_DM 1997-2011/1-12/01/0 C xy kgDM/m2/s * - 1 1 + +(((GFED_daily +111 GFED_FRAC_DAY $ROOT/GFED3/v2014-10/GFED3_dailyfrac_gen.1x1.$YYYY.nc GFED3_BB__DAYFRAC 2002-2011/1-12/1-31/0 R xy unitless * - 1 1 +)))GFED_daily + +(((GFED_3hourly +111 GFED_FRAC_3HOUR $ROOT/GFED3/v2014-10/GFED3_3hrfrac_gen.1x1.$YYYY.nc GFED3_BB__HRFRAC 2002-2011/1-12/01/0-23 R xy unitless * - 1 1 +)))GFED_3hourly +)))GFED3 + +(((GFED4 +111 GFED_TEMP $ROOT/GFED4/v2015-10/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_TEMP 1997-2014/1-12/01/0 C xy kgDM/m2/s * - 1 1 +111 GFED_AGRI $ROOT/GFED4/v2015-10/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_AGRI 1997-2014/1-12/01/0 C xy kgDM/m2/s * - 1 1 +111 GFED_DEFO $ROOT/GFED4/v2015-10/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_DEFO 1997-2014/1-12/01/0 C xy kgDM/m2/s * - 1 1 +111 GFED_BORF $ROOT/GFED4/v2015-10/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_BORF 1997-2014/1-12/01/0 C xy kgDM/m2/s * - 1 1 +111 GFED_PEAT $ROOT/GFED4/v2015-10/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_PEAT 1997-2014/1-12/01/0 C xy kgDM/m2/s * - 1 1 +111 GFED_SAVA $ROOT/GFED4/v2015-10/$YYYY/GFED4_gen.025x025.$YYYY$MM.nc DM_SAVA 1997-2014/1-12/01/0 C xy kgDM/m2/s * - 1 1 + +(((GFED_daily +111 GFED_FRAC_DAY $ROOT/GFED4/v2015-10/$YYYY/GFED4_dailyfrac_gen.025x025.$YYYY$MM.nc GFED_FRACDAY 2003-2014/1-12/1-31/0 C xy 1 * - 1 1 +)))GFED_daily + +(((GFED_3hourly +111 GFED_FRAC_3HOUR $ROOT/GFED4/v2015-10/$YYYY/GFED4_3hrfrac_gen.025x025.$YYYY$MM.nc GFED_FRAC3HR 2003-2014/1-12/1/0-23 C xy 1 * - 1 1 +)))GFED_3hourly +)))GFED4 + +)))EMISSIONS + +# ----------------------------------------------------------------------------------------- +# Non-emissions data. The following fields are read through HEMCO but do not contain +# emissions data. The extension number is set to wildcard character denoting that these +# fields will not be considered for emission calculation. A given entry is only read if +# the assigned species name is an HEMCO species. +# ----------------------------------------------------------------------------------------- + +# --- time zones (offset to UTC) --- +* TIMEZONES ~/data/TIMEZONES/timezones_1x1.nc UTC_OFFSET 2000/1/1/0 C xy count * - 1 1 + +(((METEOROLOGY +# Not used in GEOS +)))METEOROLOGY + +(((CHEMISTRY_INPUT + +#============================================================================== +# --- UV albedo, for photolysis (cf Hermann & Celarier, 1997) --- +#============================================================================== +(((UVALBEDO +* UV_ALBEDO $ROOT/UVALBEDO/v2015-03/uvalbedo.geos.2x25.nc UVALBD 1985/1-12/1/0 C xy percent * - 1 1 +)))UVALBEDO + +#============================================================================== +# --- TOMS/SBUV overhead ozone colums, for photolysis --- +#============================================================================== +* TOMS_O3_COL $ROOT/TOMS_SBUV/v2016-11/TOMS_O3col_$YYYY.geos.a.1x1.nc TOMS 1971-2010/1-12/1/0 C xy dobsons * - 1 1 +* DTOMS1_O3_COL - DTOMS1 - - - dobsons/day * - 1 1 +* DTOMS2_O3_COL - DTOMS2 - - - dobsons/day * - 1 1 + +# --- Stratospheric Bry data --- +(((CCM_STRAT_Bry +* GEOSCCM_Br_DAY ~/data/Bry/GEOSCCM_Bry.2007$MM.day.esmf.nc BR 2007/$MM/1/0 C xyz pptv Br - 1 1 +* GEOSCCM_Br2_DAY ~/data/Bry/GEOSCCM_Bry.2007$MM.day.esmf.nc BRCL 2007/$MM/1/0 C xyz pptv Br2 - 1 1 +* GEOSCCM_BrO_DAY ~/data/Bry/GEOSCCM_Bry.2007$MM.day.esmf.nc BRO 2007/$MM/1/0 C xyz pptv BrO - 1 1 +* GEOSCCM_BrNO3_DAY ~/data/Bry/GEOSCCM_Bry.2007$MM.day.esmf.nc BRONO2 2007/$MM/1/0 C xyz pptv BrNO3 - 1 1 +* GEOSCCM_HBr_DAY ~/data/Bry/GEOSCCM_Bry.2007$MM.day.esmf.nc HBR 2007/$MM/1/0 C xyz pptv HBr - 1 1 +* GEOSCCM_HOBr_DAY ~/data/Bry/GEOSCCM_Bry.2007$MM.day.esmf.nc HOBR 2007/$MM/1/0 C xyz pptv HOBr - 1 1 +* GEOSCCM_Br_NIGHT ~/data/Bry/GEOSCCM_Bry.2007$MM.night.esmf.nc BR 2007/$MM/1/0 C xyz pptv Br - 1 1 +* GEOSCCM_Br2_NIGHT ~/data/Bry/GEOSCCM_Bry.2007$MM.night.esmf.nc BRCL 2007/$MM/1/0 C xyz pptv Br2 - 1 1 +* GEOSCCM_BrO_NIGHT ~/data/Bry/GEOSCCM_Bry.2007$MM.night.esmf.nc BRO 2007/$MM/1/0 C xyz pptv BrO - 1 1 +* GEOSCCM_BrNO3_NIGHT ~/data/Bry/GEOSCCM_Bry.2007$MM.night.esmf.nc BRONO2 2007/$MM/1/0 C xyz pptv BrNO3 - 1 1 +* GEOSCCM_HBr_NIGHT ~/data/Bry/GEOSCCM_Bry.2007$MM.night.esmf.nc HBR 2007/$MM/1/0 C xyz pptv HBr - 1 1 +* GEOSCCM_HOBr_NIGHT ~/data/Bry/GEOSCCM_Bry.2007$MM.night.esmf.nc HOBR 2007/$MM/1/0 C xyz pptv HOBr - 1 1 +)))CCM_STRAT_Bry + +(((GMI_STRAT_OH +# Archived OH concentrations. These are always needed, so set species to wildcard (*) to make +# sure that this entry will always be read. +* STRAT_OH ~/data/GMI/gmi.clim.OH.geos5.2x25.esmf.nc species 2000/$MM/1/0 C xyz v/v * - 1 1 +)))GMI_STRAT_OH +# + +)))CHEMISTRY_INPUT + +# Olson land map data +(((OLSON_LANDMAP +* OLSON00 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON01 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON02 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON03 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON04 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON05 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON06 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON07 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON08 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON09 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON10 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON11 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON12 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON13 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON14 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON15 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON16 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON17 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON18 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON19 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON20 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON21 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON22 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON23 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON24 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON25 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON26 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON27 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON28 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON29 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON30 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON31 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON32 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON33 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON34 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON35 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON36 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON37 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON38 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON39 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON40 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON41 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON42 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON43 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON44 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON45 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON46 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON47 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON48 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON49 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON50 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON51 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON52 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON53 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON54 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON55 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON56 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON57 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON58 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON59 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON60 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON61 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON62 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON63 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON64 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON65 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON66 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON67 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON68 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON69 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON70 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON71 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +* OLSON72 Ignore.nc OLSON 1985/1/1/0 C xy unitless * - 1 1 +)))OLSON_LANDMAP + +# MODIS LAI data +(((YUAN_MODIS_LAI +* XLAI00 Ignore.nc XLAI00 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI01 Ignore.nc XLAI01 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI02 Ignore.nc XLAI02 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI03 Ignore.nc XLAI03 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI04 Ignore.nc XLAI04 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI05 Ignore.nc XLAI05 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI06 Ignore.nc XLAI06 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI07 Ignore.nc XLAI07 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI08 Ignore.nc XLAI08 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI09 Ignore.nc XLAI09 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI10 Ignore.nc XLAI10 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI11 Ignore.nc XLAI11 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI12 Ignore.nc XLAI12 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI13 Ignore.nc XLAI13 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI14 Ignore.nc XLAI14 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI15 Ignore.nc XLAI15 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI16 Ignore.nc XLAI16 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI17 Ignore.nc XLAI17 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI18 Ignore.nc XLAI18 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI19 Ignore.nc XLAI19 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI20 Ignore.nc XLAI20 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI21 Ignore.nc XLAI21 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI22 Ignore.nc XLAI22 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI23 Ignore.nc XLAI23 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI24 Ignore.nc XLAI24 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI25 Ignore.nc XLAI25 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI26 Ignore.nc XLAI26 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI27 Ignore.nc XLAI27 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI28 Ignore.nc XLAI28 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI29 Ignore.nc XLAI29 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI30 Ignore.nc XLAI30 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI31 Ignore.nc XLAI31 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI32 Ignore.nc XLAI32 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI33 Ignore.nc XLAI33 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI34 Ignore.nc XLAI34 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI35 Ignore.nc XLAI35 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI36 Ignore.nc XLAI36 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI37 Ignore.nc XLAI37 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI38 Ignore.nc XLAI38 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI39 Ignore.nc XLAI39 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI40 Ignore.nc XLAI40 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI41 Ignore.nc XLAI41 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI42 Ignore.nc XLAI42 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI43 Ignore.nc XLAI43 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI44 Ignore.nc XLAI44 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI45 Ignore.nc XLAI45 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI46 Ignore.nc XLAI46 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI47 Ignore.nc XLAI47 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI48 Ignore.nc XLAI48 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI49 Ignore.nc XLAI49 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI50 Ignore.nc XLAI50 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI51 Ignore.nc XLAI51 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI52 Ignore.nc XLAI52 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI53 Ignore.nc XLAI53 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI54 Ignore.nc XLAI54 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI55 Ignore.nc XLAI55 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI56 Ignore.nc XLAI56 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI57 Ignore.nc XLAI57 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI58 Ignore.nc XLAI58 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI59 Ignore.nc XLAI59 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI60 Ignore.nc XLAI60 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI61 Ignore.nc XLAI61 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI62 Ignore.nc XLAI62 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI63 Ignore.nc XLAI63 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI64 Ignore.nc XLAI64 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI65 Ignore.nc XLAI65 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI66 Ignore.nc XLAI66 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI67 Ignore.nc XLAI67 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI68 Ignore.nc XLAI68 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI69 Ignore.nc XLAI69 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI70 Ignore.nc XLAI70 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI71 Ignore.nc XLAI71 $YYYY/$MM/15/0 C xy unitless * - 1 1 +* XLAI72 Ignore.nc XLAI72 $YYYY/$MM/15/0 C xy unitless * - 1 1 +)))YUAN_MODIS_LAI + +#============================================================================== +# --- Spatially varying OM/OC --- +#============================================================================== +(((OMOC_RATIO +* OMOC_DJF $ROOT/OMOC/v2018-01/OMOC.DJF.01x01.nc OMOC 2010/1/1/0 C xy 1 * - 1 1 +* OMOC_MAM $ROOT/OMOC/v2018-01/OMOC.MAM.01x01.nc OMOC 2010/1/1/0 C xy 1 * - 1 1 +* OMOC_JJA $ROOT/OMOC/v2018-01/OMOC.JJA.01x01.nc OMOC 2010/1/1/0 C xy 1 * - 1 1 +* OMOC_SON $ROOT/OMOC/v2018-01/OMOC.SON.01x01.nc OMOC 2010/1/1/0 C xy 1 * - 1 1 +)))OMOC_RATIO + +#============================================================================== +# --- NOAA GMD monthly mean surface CH4 --- +#============================================================================== +(((GMD_SFC_CH4 +* NOAA_GMD_CH4 $ROOT/NOAA_GMD/v2018-01/monthly.gridded.surface.methane.1979-2020.1x1.nc SFC_CH4 1979-2020/1-12/1/0 C xy ppbv * - 1 1 +)))GMD_SFC_CH4 + +(((GEOS_3HR_CH4 +* GEOS_CH4 /see/extdata CH4_total_dry 1979-2024/1-12/1-31/0 C xyz ppbv * - 1 1 +* CH4_OFFSET /see/extdata CH4_offset 2021-2024/1-12/1/0 C xy v/v * - 1 1 +###* CH4_OFFSET 0.0 - - - xy v/v * - 1 1 +)))GEOS_3HR_CH4 + +(((SfcVMR +#============================================================================== +# --- CMIP6 files --- +# +# Use core CMIP6 observationally constrained data from Meinshausen et al. (2017) GMD +# +# NOTE for GEOS: +# ==> Need to download these files to use. +#============================================================================== +* SfcVMR_CH3Cl $ROOT/CMIP6/v2020-03/2x2.5/CMIP6_GHG_surface_VMR_$YYYY.2x25.nc CH3Cl 1750-2014/1-12/1/0 C xy ppbv * 801 1 1 +* SfcVMR_CH2Cl2 $ROOT/CMIP6/v2020-03/2x2.5/CMIP6_GHG_surface_VMR_$YYYY.2x25.nc CH2Cl2 1750-2014/1-12/1/0 C xy ppbv * 801 1 1 +* SfcVMR_CHCl3 $ROOT/CMIP6/v2020-03/2x2.5/CMIP6_GHG_surface_VMR_$YYYY.2x25.nc CHCl3 1750-2014/1-12/1/0 C xy ppbv * 801 1 1 +* SfcVMR_CH3Br $ROOT/CMIP6/v2020-03/2x2.5/CMIP6_GHG_surface_VMR_$YYYY.2x25.nc CH3Br 1750-2014/1-12/1/0 C xy ppbv * 801 1 1 + +#============================================================================== +# --- WMO-2018 files (GMI) --- +#============================================================================== +* SfcVMR_CCl4 $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc CCl4 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_CFC113 $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc CFC113 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_CFC114 $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc CFC114 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_CFC115 $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc CFC115 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_CFC11 $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc CFC11 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_CFC12 $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc CFC12 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +#* SfcVMR_CH3Br $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc CH3Br 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_CH3CCl3 $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc CH3CCl3 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +#* SfcVMR_CH3Cl $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc CH3Cl 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +#* SfcVMR_CH4 $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc CH4 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_H1211 $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc H1211 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_H1301 $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc H1301 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_H2402 $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc C2BR2F4 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_HCFC141b $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc HCFC141b 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_HCFC142b $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc HCFC142b 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_HCFC22 $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc HCFC22 1960-2100/1-12/1/0 C xy v/v * 802 1 1 +* SfcVMR_N2O $ROOT/SfcFix/v2019-12/WMO_2018/2x2.5/surface_VMRs_WMO2018_$YYYY.2x25.nc N2O 1960-2100/1-12/1/0 C xy v/v * 802 1 1 + +#============================================================================== +# --- Dummy files with a single surface concentration (for OCS and H2) --- +#============================================================================== +* SfcVMR_OCS $ROOT/SfcFix/v2019-12/surface_VMR_OCS.2x25.nc OCS 1985/1/1/0 C xy ppbv * - 1 1 +* SfcVMR_H2 $ROOT/SfcFix/v2019-12/surface_VMR_H2.2x25.nc H2 1985/1/1/0 C xy ppbv * - 1 1 +)))SfcVMR + +#============================================================================== +# --- Oceanic ozone deposition --- +# +# Sea surface iodide concentration and salinity to be read in for the +# new calculations for ozone deposition to the ocean +#============================================================================== +(((OCEAN_O3_DRYDEP +* surf_salinity $ROOT/OCEAN_O3_DRYDEP/v2020-02/WOA_2013_salinity.nc s_mn 1985/1/1/0 C xy 1 * - 1 1 +* surf_iodide $ROOT/OCEAN_O3_DRYDEP/v2020-02/Oi_prj_predicted_iodide_0.125x0.125_No_Skagerrak_Just_Ensemble.nc Ensemble_Monthly_mean 1970/1-12/1/0 C xy 1 * - 1 1 +)))OCEAN_O3_DRYDEP + +### END SECTION BASE EMISSIONS + +#################################################################################### +### BEGIN SECTION SCALE FACTORS +#################################################################################### + +# ScalID Name sourceFile sourceVar sourceTime C/R/E SrcDim SrcUnit Oper + +# --- mirror (for negative emissions) +1 NEGATIVE -1.0 - - - xy 1 1 + +# --- annual scale factors +6 LIQFUEL_THISYR ~/data/AnnualScalar.geos.1x1.nc COscalar 1985-2010/1/1/0 C xy 1 1 +7 LIQFUEL_1985 ~/data/AnnualScalar.geos.1x1.nc COscalar 1985/1/1/0 C xy 1 -1 + +#============================================================================== +# --- diurnal scale factors --- +#============================================================================== +26 GEIA_TOD_FOSSIL 0.45/0.45/0.6/0.6/0.6/0.6/1.45/1.45/1.45/1.45/1.4/1.4/1.4/1.4/1.45/1.45/1.45/1.45/0.65/0.65/0.65/0.65/0.45/0.45 - - - xy unitless 1 + +# --- seasonal scale factors --- +39 BROMOCARB_SEASON ~/data/emis/BROMINE/BromoCarb_Season.nc CHXBRY_scale 2000/1-12/1/0 C xy unitless 1 + +# Units carbon to species conversions +# Factor = # carbon atoms * MW carbon) / MW species +40 CtoACET MATH:58.09/(3.0*12.0) - - - xy unitless 1 +41 CtoALD2 MATH:44.06/(2.0*12.0) - - - xy unitless 1 +42 CtoALK4 MATH:58.12/(4.3*12.0) - - - xy unitless 1 +43 CtoBENZ MATH:78.12/(6.0*12.0) - - - xy unitless 1 +44 CtoC2H4 MATH:28.05/(2.0*12.0) - - - xy unitless 1 +45 CtoC2H6 MATH:30.08/(2.0*12.0) - - - xy unitless 1 +46 CtoC3H8 MATH:46.08/(3.0*12.0) - - - xy unitless 1 +47 CtoEOH MATH:46.06/(2.0*12.0) - - - xy unitless 1 +48 CtoMEK MATH:72.11/(4.0*12.0) - - - xy unitless 1 +49 CtoPRPE MATH:42.09/(3.0*12.0) - - - xy unitless 1 +55 CtoTOLU MATH:92.15/(7.0*12.0) - - - xy unitless 1 +56 CtoXYLE MATH:106.18/(8.0*12.0) - - - xy unitless 1 +59 CtoC2H2 MATH:26.04/(2.0*12.0) - - - xy unitless 1 +61 CtoISOP MATH:68.13/(5.0*12.0) - - - xy unitless 1 +62 CtoMTPA MATH:136.26/(10.0*12.0) - - - xy unitless 1 +64 CtoMBOX MATH:86.13/(5.0*12.0) - - - xy unitless 1 +67 CtoSESQ MATH:204.4/(15.0*12.0) - - - xy unitless 1 +68 CtoHCOOH MATH:46.03/(1.0*12.0) - - - xy unitless 1 +69 CtoRCHO MATH:58.09/(3.0*12.0) - - - xy unitless 1 +80 CtoMVK MATH:70.09/(4.0*12.0) - - - xy unitless 1 +81 CtoHAC MATH:74.08/(3.0*12.0) - - - xy unitless 1 +82 CtoGLYC MATH:60.06/(2.0*12.0) - - - xy unitless 1 +83 CtoMACR MATH:70.10/(4.0*12.0) - - - xy unitless 1 + +# --- VOC speciations --- +50 RETRO_KET2MEK 0.25 - - - xy unitless 1 +51 RETRO_KET2ACET 0.75 - - - xy unitless 1 +52 COPROD_FOSSIL 1.02 - - - xy unitless 1 +53 COPROD_BIOFUEL 1.086 - - - xy unitless 1 +54 COPROD_BIOMASS 1.05 - - - xy unitless 1 + +#============================================================================== +# --- SOx to SO2 conversion (Chin et al., 2000) --- +#============================================================================== +#60 SOX2SO2_GLOBAL 0.986 - - - xy unitless 1 +#61 SOX2SO2_EU 0.95 - - - xy unitless 1 +#62 SULFUR2SOX 2.0 - - - xy unitless 1 +63 SO2toSO4 0.031 - - - xy unitless 1 +#64 SOX2SO4_EU 0.05 - - - xy unitless 1 +#65 SO2toSO4_CAC 0.014 - - - xy unitless 1 +66 SO2toPFe 1.0e-3 - - - xy unitless 1 +#67 SOX2PFe_EU 1.7e-3 - - - xy unitless 1 +#68 SO2toPFe_CAC 4.7e-4 - - - xy unitless 1 +#69 SO2toPFe_NEI 1.0e-3 - - - xy unitless 1 +78 SO2FRAC 0.969 - - - xy unitless 1 + +# C2H6 conversions +95 C2H6toC 0.8 - - - xy unitless 1 +# --- Scale factor to match C2H6 emissions of 9.9 Tg C2H6 / year +# as reported by Tzompa-Sosa et al. 2017 +96 C2H6scal 2.1 - - - xy unitless 1 + +# --- Carbon aerosols: speciation of hydrophilic and hydrophobic fractions --- +# Fractions applied to the biomass burning extensions (GFED3 or FINN) are +# specified separately in the extensions section. +70 BC2BCPI 0.2 - - - xy unitless 1 +71 BC2BCPO 0.8 - - - xy unitless 1 +72 OC2OCPI 0.5 - - - xy unitless 1 +73 OC2OCPO 0.5 - - - xy unitless 1 +74 POGSCAL 1.27 - - - xy unitless 1 +76 SV2POG1 0.49 - - - xy unitless 1 +77 SV2POG2 0.51 - - - xy unitless 1 + +#============================================================================== +# --- QFED2 diurnal scale factors --- +# +# Fire diurnal scaling factors (% per hour) from WRAP Report to Project +# No. 178-6, July 2005 +#============================================================================== +75 QFED2_TOD 0.1392/0.1392/0.1368/0.1368/0.1368/0.1368/0.1368/0.1368/0.1368/0.48/0.96/1.68/2.4/3.12/3.84/4.08/2.88/1.68/0.96/0.1368/0.1368/0.1368/0.1368/0.1368 - - - xy unitless 1 + +#============================================================================== +# --- BIOGENIC EMISSIONS FROM DRY LEAF MATTER --- +# +# Use yield of 40ug/dDW. +# Assume organic matter has molecular formula CH2O (MW 30.03), which +# means 0.4 gC / g plant +# ALD2 MW = 44.05 g/mole ==> 0.55 gC/g ALD2 +# Therefore 40ug (ALD2) / g (plant) ==> 55 ug C in ALD2 / gC plant +# EOH MW = 46 g/mole ==> 0.52 gC/g EOH +# Therefore 40ug (EOH) / g (plant) ==> 52 ug C in EOH / gC plant +#============================================================================== +85 YIELD_RESP_ALD2 55.0e-6 - - - xy unitless 1 +86 YIELD_RESP_EOH 52.0e-6 - - - xy unitless 1 + +#============================================================================== +# --- Biofuel conversion factors --- +#============================================================================== +90 BF_COtoHAC 8.75e-3 - - - xy unitless 1 +91 BF_COtoSO2 3.43e-3 - - - xy unitless 1 + +#Convert CEDS EOH (MW=46.2) to species MW as used in GEOS-Chem +8 EOHtoMOH 0.694 - - - xy unitless 1 +9 EOHtoEOH 0.997 - - - xy unitless 1 +24 EOHtoROH 1.28 - - - xy unitless 1 +10 C4H10toALK4 1.000 - - - xy unitless 1 +11 C5H12toALK4 0.806 - - - xy unitless 1 +12 C6H14toALK4 0.674 - - - xy unitless 1 +13 MEKtoMEK 0.958 - - - xy unitless 1 +14 MEKtoACET 0.772 - - - xy unitless 1 +15 ALD2toALD2 0.640 - - - xy unitless 1 +16 HCOOHtoHCOOH 0.779 - - - xy unitless 1 + +#Convert CEDS total alchohols to methanol, ethanol, and other alcohols following Chen et al. (2019, ACP) +92 VOC1toMOH 0.5 - - - xy 1 1 +93 VOC1toEOH 0.375 - - - xy 1 1 +94 VOC1toROH 0.125 - - - xy 1 1 + +#NOx to NO and NO2 emissions. +#Christoph and I discussed trying a ratio of the NOx emissions. 30Jun20 KEK +97 NOXtoNO 0.9 - - - xy 1 1 +98 NOXtoNO2 0.1 - - - xy 1 1 + +# Conversion factor from NO to NO2 +115 NOtoNO2 1.533 - - - xy unitless 1 + +# --- AEIC aircraft emissions --- +# See http://geoschemdata.wustl.edu/ExtData/HEMCO/AEIC2019/v2022-03/AEIC_2019_technical_note.pdf +101 AEICACET 3.693477e-3 - - - xy unitless 1 +102 AEICALD2 4.271822e-2 - - - xy unitless 1 +103 AEICALK4 2.137911e-1 - - - xy unitless 1 +104 AEICC2H6 5.214505e-3 - - - xy unitless 1 +105 AEICC3H8 7.808710e-4 - - - xy unitless 1 +106 AEICCH2O 1.230811e-1 - - - xy unitless 1 +107 AEICPRPE 1.780418e-1 - - - xy unitless 1 +108 AEICMACR 5.362609e-2 - - - xy unitless 1 +109 AEICRCHO 3.676944e-2 - - - xy unitless 1 +111 AEICSO2 1.176000e-3 - - - xy unitless 1 +112 AEICSO4 3.600000e-5 - - - xy unitless 1 +113 AEICBC 3.000000e-5 - - - xy unitless 1 +114 AEICHC 1.160000e+0 - - - xy unitless 1 +120 FB2H2O 1.231000e+0 - - - xy unitless 1 + +#------------------------------------------------------------------------------ +# Scaling factors for 1990-2019 derived from Lee et al. (2021). Increase +# from 2018 to 2019 is estimated based on the growth from 2017 to 2018. +# Lee et al. (2021) only covers 1990 to 2018, so to get to 2019 it is +# assumed that the growth from 2017 to 2018 is the same as that from 2018 +# to 2019. So the formula is something like: +# +# Emissions of CO in 2009 = AEIC 2019 emissions of CO +# * (Lee 2017 CO / Lee 2018 fuel burn) +# * (Lee 2009 fuel burn / Lee 2018 fuel burn) +# +# So in this case, we use the Lee 2017/Lee 2018 value to scale AEIC’s +# emissions to the “2018” values, and then scale directly using the Lee et al +# fuel burn. This ensures that, when running with year 2019, you get an +# unadjusted version of the AEIC2019 inventory, and all previous years are +# scaled down. For NOx, the same procedure is applied but with an additional +# factor to account for changes in NOx EI: +# +# Emissions of NOx in 2009 = [ AEIC 2019 emissions of NOx +# * (Lee 2017 CO / Lee 2018 fuel burn) +# * (Lee 2009 fuel burn / Lee 2018 fuel burn) ] +# * [ (Lee 2017 NOx EI / Lee 2018 NOx EI) +# * (Lee 2009 NOx EI / Lee 2018 NOx EI) ] +# +# In this case though the Lee et al 2018 and 2017 NOx EIs are identical. +# All scaling factors are included in here in HEMCO_Config.rc. +#------------------------------------------------------------------------------ +(((AEIC_SCALE_1990_2019 +240 AC_EINOX 0.852/0.852/0.852/0.859/0.866/0.873/0.881/0.888/0.896/0.903/0.911/0.916/0.922/0.927/0.932/0.937/0.950/0.962/0.974/0.987/1.000/1.000/1.000/1.000/1.000/1.000/1.000/1.000/1.000/1.000 - 1990-2019/1/1/0 C xy 1 1 +241 AC_FBMULT 0.506/0.489/0.490/0.493/0.517/0.529/0.553/0.570/0.581/0.600/0.631/0.607/0.608/0.608/0.646/0.678/0.686/0.706/0.703/0.666/0.700/0.721/0.728/0.749/0.773/0.815/0.854/0.905/0.952/1.000 - 1990-2019/1/1/0 C xy 1 1 +)))AEIC_SCALE_1990_2019 + +# If not applying 1990-2019 scale factors, use 1.0 +(((.not.AEIC_SCALE_1990_2019 +240 AC_EINOX 1.000000e+0 - - - xy 1 1 +241 AC_FBMULT 1.000000e+0 - - - xy 1 1 +))).not.AEIC_SCALE_1990_2019 + +# --- SNAP scale factors from TNO report --- +# Binning: +# SNAP categories 1. 5 (power generation, extract/distribution of fossil fuels ) --> ENERGY +# SNAP categories 3, 4, 6 (industrial combustion, industrial processing, solvent use) --> INDUSTRY +# SNAP categories 2 (combustion ) --> RESIDENTIAL +# SNAP categories 7, 8 (road transport, other mobile ) --> TRANSPORT + +# day-of-week scale factors: Sun/Mon/.../Sat +201 INDUSTRY_DOW 0.73/1.10/1.10/1.10/1.10/1.10/0.77 - - - xy 1 1 +202 ENERGY_DOW 0.93/1.03/1.03/1.03/1.03/1.03/0.93 - - - xy 1 1 +203 TRANSPORT_DOW 0.90/1.01/1.03/1.04/1.05/1.07/0.91 - - - xy 1 1 +204 RESIDENTIAL_DOW 0.80/1.08/1.08/1.08/1.08/1.08/0.80 - - - xy 1 1 +205 AGRICULTURE_DOW 1.00/1.00/1.00/1.00/1.00/1.00/1.00 - - - xy 1 1 +206 AVERAGE_DOW 0.84/1.06/1.06/1.06/1.07/1.07/0.85 - - - xy 1 1 + +# diurnal scale factors: 0am/1am/.../23pm +211 INDUSTRY_TOD 0.82/0.75/0.70/0.66/0.64/0.66/0.72/0.92/1.11/1.19/1.24/1.26/1.27/1.24/1.25/1.25/1.22/1.19/1.14/1.07/1.00/0.95/0.90/0.86 - - - xy 1 1 +212 ENERGY_TOD 0.94/0.90/0.86/0.86/0.86/0.87/0.90/0.96/1.04/1.10/1.11/1.11/1.11/1.09/1.08/1.07/1.07/1.05/1.04/1.02/1.01/1.01/1.01/0.98 - - - xy 1 1 +213 TRANSPORT_TOD 0.72/0.60/0.55/0.53/0.53/0.55/0.61/0.93/1.42/1.43/1.21/1.12/1.10/1.16/1.22/1.23/1.30/1.52/1.54/1.26/1.03/0.87/0.81/0.81 - - - xy 1 1 +214 RESIDENTIAL_TOD 0.42/0.38/0.36/0.36/0.36/0.37/0.50/1.19/1.53/1.57/1.56/1.35/1.16/1.07/1.06/1.00/0.98/0.99/1.12/1.41/1.52/1.39/1.35/1.00 - - - xy 1 1 +215 AGRICULTURE_TOD 0.60/0.60/0.60/0.60/0.60/0.60/0.65/0.75/0.90/1.10/1.35/1.45/1.60/1.65/1.75/1.70/1.55/1.35/1.10/0.90/0.75/0.65/0.60/0.60 - - - xy 1 1 +216 AVERAGE_TOD 0.72/0.66/0.62/0.60/0.60/0.61/0.68/1.00/1.28/1.32/1.28/1.21/1.16/1.14/1.15/1.14/1.14/1.19/1.21/1.19/1.14/1.06/1.02/0.91 - - - xy 1 1 + +#============================================================================== +# --- Aromatics scale factors --- +# +# Increase aromatics over China to be more in line with measurements +# for Chinese cities (E. Fischer) +# Refs: Barletta et al. (2005), Atmos Environ, 39, 5979-5990 +# Liu et al. (2010), Environ Sci Technol, 44, 7017-7022. +#============================================================================== +#270 BENZ_CH_SCAL 1.25 - - - xy 1 1 1003 +#271 TOLU_CH_SCAL 4.00 - - - xy 1 1 1003 +#272 XYLE_CH_SCAL 8.00 - - - xy 1 1 1003 +270 BENZ_CH_SCAL 1.00 - - - xy 1 1 +271 TOLU_CH_SCAL 1.00 - - - xy 1 1 +272 XYLE_CH_SCAL 1.00 - - - xy 1 1 + +#============================================================================== +# --- SOA-Precursor scale factors --- +# +# from Kim, P.S., et. al. 2015 "Sources, seasonality, and trends +# of southeast US aerosol: ..." +# +# AVOCs and BBVOCs are emitted in proportion to CO, with an emission ratio of +# 0.069 g AVOC (g CO)−1 (Hayes et al., 2015) and +# 0.013 g BBVOC (g CO)−1 (Cubison et al., 2011). +# They are both oxidized by OH in the model ... to generate SOA. +# +280 COtoSOAP_anth 0.069 - - - xy 1 1 +281 COtoSOAP_burn 0.013 - - - xy 1 1 +282 COtoNAP_burn 2.75e-4 - - - xy 1 1 + +# --- QFED scale factors --- +311 QFED_PBL_FRAC 0.65 - - - xy 1 1 +312 QFED_FT_FRAC 0.35 - - - xy 1 1 + +# Adjust QFED OC emissions to account for different OM:OC ratio (Carter et al., ACP, 2020) +313 QFED2_OC_CORR 0.69 - - - xy unitless 1 + +# QFED mask for temperate vs. boreal forest +314 QFED2_TEMPERATE /see/ExtData.rc qfed2_temperate 2015/1/1/0 C xy 1 1 +315 QFED2_BOREAL /see/ExtData.rc qfed2_boreal 2015/1/1/0 C xy 1 1 + +# CEDS vertical scale factors +317 CEDS_VSCAL_ENERGY /see/ExtData.rc vscal_energy 2005/1-12/1/0 C xyz 1 1 +318 CEDS_VSCAL_INDUSTRY /see/ExtData.rc vscal_industry 2005/1-12/1/0 C xyz 1 1 +319 CEDS_VSCAL_SHIP /see/ExtData.rc vscal_ship 2005/1-12/1/0 C xyz 1 1 + +# Adjust QFED emission factors to reflect values in Andrea (2019). This includes +# all species except NOx, for which the values derived by Jin et al (2021) are +# used (see below) +501 QFED2_ACET_TF_SCAL 1.02 - - - xy 1 1 +502 QFED2_ACET_TP_SCAL 1.37 - - - xy 1 1 +503 QFED2_ACET_BO_SCAL 2.87 - - - xy 1 1 +504 QFED2_ACET_SV_SCAL 1.08 - - - xy 1 1 +505 QFED2_ALD2_TF_SCAL 3.48 - - - xy 1 1 +506 QFED2_ALD2_TP_SCAL 2.42 - - - xy 1 1 +507 QFED2_ALD2_BO_SCAL 1.62 - - - xy 1 1 +508 QFED2_ALD2_SV_SCAL 1.68 - - - xy 1 1 +# not sure how to weight the individual alkanes (n-butane vs. i-butane vs, etc.), so keep EF's as is for now +509 QFED2_ALK4_TF_SCAL 1.00 - - - xy 1 1 +510 QFED2_ALK4_TP_SCAL 1.00 - - - xy 1 1 +511 QFED2_ALK4_BO_SCAL 1.00 - - - xy 1 1 +512 QFED2_ALK4_SV_SCAL 1.00 - - - xy 1 1 +513 QFED2_BC_TF_SCAL 0.77 - - - xy 1 1 +514 QFED2_BC_TP_SCAL 0.98 - - - xy 1 1 +515 QFED2_BC_BO_SCAL 0.77 - - - xy 1 1 +516 QFED2_BC_SV_SCAL 1.10 - - - xy 1 1 +517 QFED2_OC_TF_SCAL 0.85 - - - xy 1 1 +518 QFED2_OC_TP_SCAL 1.19 - - - xy 1 1 +519 QFED2_OC_BO_SCAL 0.65 - - - xy 1 1 +520 QFED2_OC_SV_SCAL 0.88 - - - xy 1 1 +521 QFED2_C2H6_TF_SCAL 0.73 - - - xy 1 1 +522 QFED2_C2H6_TP_SCAL 1.15 - - - xy 1 1 +523 QFED2_C2H6_BO_SCAL 1.62 - - - xy 1 1 +524 QFED2_C2H6_SV_SCAL 1.31 - - - xy 1 1 +525 QFED2_C3H8_TF_SCAL 3.53 - - - xy 1 1 +526 QFED2_C3H8_TP_SCAL 1.12 - - - xy 1 1 +527 QFED2_C3H8_BO_SCAL 1.16 - - - xy 1 1 +528 QFED2_C3H8_SV_SCAL 1.44 - - - xy 1 1 +529 QFED2_CH2O_TF_SCAL 1.71 - - - xy 1 1 +530 QFED2_CH2O_TP_SCAL 0.93 - - - xy 1 1 +531 QFED2_CH2O_BO_SCAL 0.80 - - - xy 1 1 +532 QFED2_CH2O_SV_SCAL 3.51 - - - xy 1 1 +533 QFED2_CO_TF_SCAL 1.00 - - - xy 1 1 +534 QFED2_CO_TP_SCAL 1.06 - - - xy 1 1 +535 QFED2_CO_BO_SCAL 1.13 - - - xy 1 1 +536 QFED2_CO_SV_SCAL 1.06 - - - xy 1 1 +537 QFED2_MEK_TF_SCAL 1.16 - - - xy 1 1 +538 QFED2_MEK_TP_SCAL 0.51 - - - xy 1 1 +539 QFED2_MEK_BO_SCAL 0.35 - - - xy 1 1 +540 QFED2_MEK_SV_SCAL 0.50 - - - xy 1 1 +541 QFED2_NH3_TF_SCAL 1.02 - - - xy 1 1 +542 QFED2_NH3_TP_SCAL 0.70 - - - xy 1 1 +543 QFED2_NH3_BO_SCAL 1.79 - - - xy 1 1 +544 QFED2_NH3_SV_SCAL 0.85 - - - xy 1 1 +549 QFED2_SO2_TF_SCAL 1.35 - - - xy 1 1 +550 QFED2_SO2_TP_SCAL 0.70 - - - xy 1 1 +551 QFED2_SO2_BO_SCAL 0.75 - - - xy 1 1 +552 QFED2_SO2_SV_SCAL 1.34 - - - xy 1 1 +# CO to VOC scale factors for VOCs not directly carried by QFED. VOC/CO ratio taken from GEOS-Chem GFEDv4 implementation +560 QFED2_COtoPRPE_TF 1.50e-2 - - - xy 1 1 +561 QFED2_COtoPRPE_TP 1.24e-2 - - - xy 1 1 +562 QFED2_COtoPRPE_BO 1.18e-2 - - - xy 1 1 +563 QFED2_COtoPRPE_SV 1.02e-2 - - - xy 1 1 +564 QFED2_COtoMTPA_TF 1.29e-3 - - - xy 1 1 +565 QFED2_COtoMTPA_TP 1.57e-2 - - - xy 1 1 +566 QFED2_COtoMTPA_BO 2.27e-2 - - - xy 1 1 +567 QFED2_COtoMTPA_SV 1.61e-3 - - - xy 1 1 +568 QFED2_COtoBENZ_TF 3.17e-3 - - - xy 1 1 +569 QFED2_COtoBENZ_TP 8.74e-3 - - - xy 1 1 +570 QFED2_COtoBENZ_BO 3.07e-3 - - - xy 1 1 +571 QFED2_COtoBENZ_SV 4.19e-3 - - - xy 1 1 +572 QFED2_COtoTOLU_TF 1.27e-3 - - - xy 1 1 +573 QFED2_COtoTOLU_TP 3.78e-3 - - - xy 1 1 +574 QFED2_COtoTOLU_BO 2.16e-3 - - - xy 1 1 +575 QFED2_COtoTOLU_SV 2.80e-3 - - - xy 1 1 +576 QFED2_COtoXYLE_TF 2.22e-4 - - - xy 1 1 +577 QFED2_COtoXYLE_TP 1.42e-3 - - - xy 1 1 +578 QFED2_COtoXYLE_BO 1.48e-3 - - - xy 1 1 +579 QFED2_COtoXYLE_SV 1.18e-3 - - - xy 1 1 +580 QFED2_COtoEOH_TF 3.81e-4 - - - xy 1 1 +581 QFED2_COtoEOH_TP 4.33e-4 - - - xy 1 1 +582 QFED2_COtoEOH_BO 1.14e-3 - - - xy 1 1 +583 QFED2_COtoEOH_SV 3.98e-4 - - - xy 1 1 +584 QFED2_COtoMOH_TF 1.87e-2 - - - xy 1 1 +585 QFED2_COtoMOH_TP 2.22e-2 - - - xy 1 1 +586 QFED2_COtoMOH_BO 1.98e-2 - - - xy 1 1 +587 QFED2_COtoMOH_SV 2.61e-2 - - - xy 1 1 +588 QFED2_PRPE_TF_SCAL 1.56 - - - xy 1 1 +589 QFED2_PRPE_TP_SCAL 1.02 - - - xy 1 1 +590 QFED2_PRPE_BO_SCAL 1.14 - - - xy 1 1 +591 QFED2_PRPE_SV_SCAL 1.77 - - - xy 1 1 + +# Adjust NOx emission factors (in g/kg) based on Jin et al., ACP, 2021: +# Tropical forest: target is 3.17, vs. 1.6 used by QFED (--> scale factor is 1.98) +# Temperate forest: 1.36 vs. 3.0 (scale by 0.45) +# Boreal forest: 1.70 vs. 3.0 (scale by 0.57) +# Savanna and grasslands: 2.49 vs. 3.9 (scale by 0.64) +# QFED does not distinguish between temperate and boreal forests. In an ad-hoc +# attempt to adjust BB NOx emissions differently for temperate and boreal forests, +# the boreal scale factor is applied to all extratropical biomass burning emissions +# occuring at latitudes higher than 55 deg N, while the temperate scale factor is +# used elsewhere. +545 QFED2_NO_TF_SCAL 1.98 - - - xy 1 1 +546 QFED2_NO_TP_SCAL 0.45 - - - xy 1 1 +547 QFED2_NO_BO_SCAL 0.57 - - - xy 1 1 +548 QFED2_NO_SV_SCAL 0.64 - - - xy 1 1 + +# Partition NO emissions into 40%NO, 40%PAN, and 20%HNO3 (on a N basis). +# For PAN: 0.4 * 121.05 / 30.01 = 1.614 +# For HNO3: 0.2 * 63.012 / 30.01 = 0.420 +592 QFED2_NO_SCAL 0.400 - - - xy 1 1 +593 QFED2_NOtoPAN 1.614 - - - xy 1 1 +594 QFED2_NOtoHNO3 0.420 - - - xy 1 1 + +#============================================================================== +# Scale the CMIP6 values in pptv to ppbv +#============================================================================== +801 pptv2ppbv 0.001 - - - xy 1 1 +802 vv2ppbv 1000000000 - - - xy 1 1 + +# +### END SECTION SCALE FACTORS + +#################################################################################### +### BEGIN SECTION MASKS +#################################################################################### +# +# ScalID Name sourceFile sourceVar sourceTime C/R/E SrcDim SrcUnit Oper Lon1/Lat1/Lon2/Lat2 +# +# +1008 AF_MASK $ROOT/MASKS/v2014-07/AF_LANDMASK.geos.05x0666.nc LANDMASK 1985/1/1/0 C xy unitless 1 -20/-37/54/40 +### END SECTION MASKS + +### END OF HEMCO INPUT FILE ### diff --git a/src/swell/configuration/jedi/interfaces/geos_cf/namelists/HISTORY.rc b/src/swell/configuration/jedi/interfaces/geos_cf/namelists/HISTORY.rc new file mode 100644 index 000000000..3afd15503 --- /dev/null +++ b/src/swell/configuration/jedi/interfaces/geos_cf/namelists/HISTORY.rc @@ -0,0 +1,141 @@ +VERSION: 1 +EXPID: CF2 +EXPDSC: JEDI +EXPSRC: GEOSCFv2/rc1/t13 + + +COLLECTIONS: 'geoscf_jedi' +# 'geosgcm_prog' +# 'prog.eta' + :: + +################################################## +# The GRID_LABELS section must be after the main # +# list of COLLECTIONS for scripting purposes. # +################################################## + +GRID_LABELS: PE90x540-CF + PE360x2160-CF + PC360x181-DC +:: + +PE360x2160-CF.GRID_TYPE: Cubed-Sphere +PE360x2160-CF.IM_WORLD: 360 +PE360x2160-CF.JM_WORLD: 2160 +PE360x2160-CF.POLE: PC +PE360x2160-CF.DATELINE: DC +PE360x2160-CF.LM: 72 + +PE90x540-CF.GRID_TYPE: Cubed-Sphere +PE90x540-CF.IM_WORLD: 90 +PE90x540-CF.JM_WORLD: 540 +PE90x540-CF.POLE: PC +PE90x540-CF.DATELINE: DC +PE90x540-CF.LM: 72 + +PC360x181-DC.GRID_TYPE: LatLon +PC360x181-DC.IM_WORLD: 360 +PC360x181-DC.JM_WORLD: 181 +PC360x181-DC.POLE: PC +PC360x181-DC.DATELINE: DC +PC360x181-DC.LM: 72 + + + geoscf_jedi.template: '%y4%m2%d2T%h2%n200Z.nc4', + geoscf_jedi.archive: '%c/Y%y4', + geoscf_jedi.format: 'CFIO', + geoscf_jedi.mode: 'instantaneous' , + #geoscf_jedi.frequency: 010000, + geoscf_jedi.frequency: >>SWELL_FC_OUTPUT_FREQ<<, + geoscf_jedi.ref_time: 000000, + geoscf_jedi.grid_label: >>SWELL_GEOSCF_JEDI_GRID<< + geoscf_jedi.fields: 'T' , 'DYN' , + 'U_DGRID;V_DGRID' , 'DYN' , 'ud;vd' , + 'U;V' , 'DYN' , 'ua;va' , + 'DELP' , 'DYN' , + 'PS' , 'DYN' , + 'Q' , 'MOIST' , 'SPHU' , + 'QITOT' , 'AGCM' , 'qi' , + 'QLTOT' , 'AGCM' , 'ql' , + 'PHIS' , 'AGCM' , 'phis' , + 'SpeciesConc_O3' , 'GEOSCHEMCHEM' , 'O3' , + 'SpeciesConc_NO' , 'GEOSCHEMCHEM' , 'NO' , + 'SpeciesConc_NO2' , 'GEOSCHEMCHEM' , 'NO2' , + 'SpeciesConc_CO' , 'GEOSCHEMCHEM' , 'CO' , + 'EMIS_CO' , 'GEOSCHEMCHEM' , + 'EMIS_CO_IND' , 'GEOSCHEMCHEM' , + 'EMIS_CO_POW' , 'GEOSCHEMCHEM' , + 'EMIS_CO_TRA' , 'GEOSCHEMCHEM' , + 'EMIS_CO_RES' , 'GEOSCHEMCHEM' , + 'EMIS_NO' , 'GEOSCHEMCHEM' , + 'EMIS_NO_IND' , 'GEOSCHEMCHEM' , + 'EMIS_NO_POW' , 'GEOSCHEMCHEM' , + 'EMIS_NO_TRA' , 'GEOSCHEMCHEM' , + 'EMIS_NO_RES' , 'GEOSCHEMCHEM' , + 'EMIS_NO2' , 'GEOSCHEMCHEM' , + 'EMIS_NO2_IND' , 'GEOSCHEMCHEM' , + 'EMIS_NO2_POW' , 'GEOSCHEMCHEM' , + 'EMIS_NO2_TRA' , 'GEOSCHEMCHEM' , + 'EMIS_NO2_RES' , 'GEOSCHEMCHEM' , + 'Met_PBLTHICK' , 'GEOSCHEMCHEM' , + :: + + + + + + geosgcm_prog.template: '%y4%m2%d2_%h2%n2z.nc4' , + geosgcm_prog.archive: '%c/Y%y4' , + geosgcm_prog.format: 'CFIO' , + geosgcm_prog.deflate: 1 , + geosgcm_prog.grid_label: PE90x540-CF , + geosgcm_prog.frequency: 060000 , + geosgcm_prog.vscale: 100.0 , + geosgcm_prog.vunit: 'hPa' , + geosgcm_prog.vvars: 'log(PLE)' , 'DYN' , + geosgcm_prog.levels: 1000 975 950 925 900 875 850 825 800 775 750 725 700 650 600 550 500 450 400 350 300 250 200 150 100 70 50 40 30 20 10 7 5 4 3 2 1 0.7 0.5 0.4 0.3 0.2 0.1 0.07 0.05 0.04 0.03 0.02 , + geosgcm_prog.fields: 'PHIS' , 'AGCM' , + 'SLP' , 'DYN' , + 'U;V' , 'DYN' , + 'T' , 'DYN' , + 'PS' , 'DYN' , + 'ZLE' , 'DYN' , 'H' , + 'OMEGA' , 'DYN' , + 'Q' , 'MOIST' , 'QV' , + 'QITOT' , 'AGCM' , 'QI' , + 'QLTOT' , 'AGCM' , 'QL' , + 'RH2' , 'MOIST' , 'RH' , + 'O3' , 'CHEMISTRY' , + :: + + + + prog.eta.template: '%y4%m2%d2_%h2%n2z.nc4' , + prog.eta.archive: '%c/Y%y4' , + prog.eta.format: 'CFIO' , + prog.eta.deflate: 1 , + prog.eta.grid_label: PC360x181-DC , + prog.eta.regrid_method: 'BILINEAR', + prog.eta.mode: 'instantaneous' , + prog.eta.frequency: 060000 , + prog.eta.duration: 060000 , + prog.eta.ref_time: 000000 , + prog.eta.fields: 'PHIS' , 'AGCM' , 'phis' , + 'SGH' , 'AGCM' , 'hs_stdv' , + 'TS' , 'SURFACE' , 'ts' , + 'FRLAND' , 'SURFACE' , 'frland' , + 'FRLANDICE' , 'SURFACE' , 'frlandice' , + 'FRLAKE' , 'SURFACE' , 'frlake' , + 'FROCEAN' , 'SURFACE' , 'frocean' , + 'FRACI' , 'SURFACE' , 'frseaice' , + 'PS' , 'DYN' , 'ps' , + 'DELP' , 'DYN' , 'delp' , + 'U;V' , 'DYN' , 'u;v' , + 'TV' , 'DYN' , 'tv' , + 'Q' , 'MOIST' , 'sphu' , + 'O3PPMV' , 'CHEMISTRY' , 'ozone' , + 'QITOT' , 'AGCM' , 'qitot' , + 'QLTOT' , 'AGCM' , 'qltot' , + 'QRTOT' , 'MOIST' , 'qrtot' , + 'QSTOT' , 'MOIST' , 'qstot' , + :: diff --git a/src/swell/configuration/jedi/interfaces/geos_cf/namelists/cap_restart b/src/swell/configuration/jedi/interfaces/geos_cf/namelists/cap_restart new file mode 100755 index 000000000..9aee5974e --- /dev/null +++ b/src/swell/configuration/jedi/interfaces/geos_cf/namelists/cap_restart @@ -0,0 +1 @@ +20190101 210000 diff --git a/src/swell/configuration/jedi/interfaces/geos_cf/namelists/gcm_run_geoscf_c90.j b/src/swell/configuration/jedi/interfaces/geos_cf/namelists/gcm_run_geoscf_c90.j new file mode 100644 index 000000000..38998f819 --- /dev/null +++ b/src/swell/configuration/jedi/interfaces/geos_cf/namelists/gcm_run_geoscf_c90.j @@ -0,0 +1,764 @@ +#!/bin/csh -f + +####################################################################### +# Batch Parameters for Run Job +####################################################################### +#SBATCH --time=00:40:00 +#SBATCH --nodes=8 --ntasks-per-node=108 +#SBATCH --job-name=CFv2rc1t13 +#SBATCH --output=CFv2_gcm_%j +#SBATCH --constraint=mil +#SBATCH --account=s2127 + + +####################################################################### +# System Settings +####################################################################### + +umask 022 + +limit stacksize unlimited + +####################################################################### +# Architecture Specific Environment Variables +####################################################################### + +setenv ARCH `uname` + +setenv SITE NCCS +#setenv GEOSDIR /discover/nobackup/projects/gmao/geos-cf-v2/CFv2_code/GEOSgcm_rc1_t15/install_mil +#setenv GEOSBIN /discover/nobackup/projects/gmao/geos-cf-v2/CFv2_code/GEOSgcm_rc1_t15/install_mil/bin +#setenv GEOSETC /discover/nobackup/projects/gmao/geos-cf-v2/CFv2_code/GEOSgcm_rc1_t15/install_mil/etc +#setenv GEOSUTIL /discover/nobackup/projects/gmao/geos-cf-v2/CFv2_code/GEOSgcm_rc1_t15/install_mil + +#setenv GEOSDIR /discover/nobackup/mabdiosk/GEOS-mil/GEOSgcm/install +setenv GEOSDIR >>SWELL_GEOSINSTALL<< +#setenv GEOSDIR /discover/nobackup/vshah5/cf2/CFv2_code/GEOSgcm_rc1_t15/build_mil +setenv GEOSBIN $GEOSDIR/bin +setenv GEOSETC $GEOSDIR/etc +setenv GEOSUTIL $GEOSDIR + +source $GEOSBIN/g5_modules # super important, all the libs to run geos.exe, will do module purge +setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${BASEDIR}/${ARCH}/lib:${GEOSDIR}/lib + +setenv RUN_CMD "$GEOSBIN/esma_mpirun -np " + +setenv GCMVER `cat $GEOSETC/.AGCM_VERSION` +echo VERSION: $GCMVER + +####################################################################### +# Experiment Specific Environment Variables +####################################################################### + + +setenv EXPID GCv14.0_GCMv1.17_c90 +#setenv EXPDIR /discover/nobackup/mabdiosk/rundir/GCv14.0_GCMv1.17_c90_Skylab +setenv EXPDIR >>SWELL_GEOSRUN<< +# EXPDIR and EXPID have to be the same +setenv HOMDIR $EXPDIR + +# Run GSI? +set RUN_GSI = 0 + +####################################################################### +# Create Experiment Sub-Directories +####################################################################### +echo " Create Experiment Sub-Directories " +setenv CYCLEDIR >>SWELL_CYCLEDIR<< # current_cycle + + +#if (! -e $CYCLEDIR/restarts ) mkdir -p $CYCLEDIR/restarts +#if (! -e $CYCLEDIR/holding ) mkdir -p $CYCLEDIR/holding + +setenv SCRDIR $CYCLEDIR +# Remove the directory if it exists +#if ( -d $SCRDIR ) then +# rm -rf $SCRDIR +#endif + +# Create the directory +#mkdir -p $SCRDIR + +####################################################################### +# Set Experiment Run Parameters +####################################################################### +# read things from AGCM.rc, change only changing the res/config +# nx ny has to be the same as number of requested cpus. +# prepfc copies AGCM.rc from skylab/models/geos_cf/namelists to CYCLEDIR + +echo "Set Experiment Run Parameters" +set NX = `grep '^\s*NX:' $CYCLEDIR/AGCM.rc | cut -d: -f2` +set NY = `grep '^\s*NY:' $CYCLEDIR/AGCM.rc | cut -d: -f2` +set AGCM_IM = `grep '^\s*AGCM_IM:' $CYCLEDIR/AGCM.rc | cut -d: -f2` +set AGCM_JM = `grep '^\s*AGCM_JM:' $CYCLEDIR/AGCM.rc | cut -d: -f2` +set AGCM_LM = `grep '^\s*AGCM_LM:' $CYCLEDIR/AGCM.rc | cut -d: -f2` +set OGCM_IM = `grep '^\s*OGCM\.IM_WORLD:' $CYCLEDIR/AGCM.rc | cut -d: -f2` +set OGCM_JM = `grep '^\s*OGCM\.JM_WORLD:' $CYCLEDIR/AGCM.rc | cut -d: -f2` + + +# Calculate number of cores/nodes for IOSERVER +# -------------------------------------------- + +set USE_IOSERVER = 0 +set AGCM_IOS_NODES = `grep '^\s*IOSERVER_NODES:' $CYCLEDIR/AGCM.rc | cut -d: -f2` + +if ($USE_IOSERVER == 0) then + set IOS_NODES = 0 +else + set IOS_NODES = $AGCM_IOS_NODES +endif + +# Check for Over-Specification of CPU Resources +# --------------------------------------------- +if ($?SLURM_NTASKS) then + set NCPUS = $SLURM_NTASKS +else if ($?PBS_NODEFILE) then + set NCPUS = `cat $PBS_NODEFILE | wc -l` +else + set NCPUS = NULL +endif + +@ MODEL_NPES = $NX * $NY + +if ( $NCPUS != NULL ) then + + if ( $USE_IOSERVER == 1 ) then + + set NCPUS_PER_NODE = 40 + + @ NODES = `echo "( ($MODEL_NPES + $NCPUS_PER_NODE) + ($AGCM_IOS_NODES * $NCPUS_PER_NODE) - 1)/$NCPUS_PER_NODE" | bc` + @ NPES = $NODES * $NCPUS_PER_NODE + + if( $NPES > $NCPUS ) then + echo "CPU Resources are Over-Specified" + echo "--------------------------------" + echo "Allotted NCPUs: $NCPUS" + echo "Requested NCPUs: $NPES" + echo "" + echo "Specified NX: $NX" + echo "Specified NY: $NY" + echo "" + echo "Specified IOSERVER_NODES: $AGCM_IOS_NODES" + echo "Specified cores per node: $NCPUS_PER_NODE" + echo "Exit with NPES > NCPUS 1" + exit + endif + + else + + @ NPES = $MODEL_NPES + + if( $NPES > $NCPUS ) then + echo "CPU Resources are Over-Specified" + echo "--------------------------------" + echo "Allotted NCPUs: $NCPUS" + echo "Requested NCPUs: $NPES" + echo "" + echo "Specified NX: $NX" + echo "Specified NY: $NY" + echo "Exit with NPES > NCPUS 2" + exit + endif + + endif + +else + # This is for the desktop path + + @ NPES = $MODEL_NPES + +endif + +# submit GSI standalone run, will run in parallel +if ( $RUN_GSI == 1 ) then + # make sure EXPID is correct + /bin/mv gsi_sa.j gsi_sa.tmp + cat gsi_sa.tmp | sed -e "s?setenv EXPID.*?setenv EXPID $EXPID?g" > gsi_sa.j + /bin/rm gsi_sa.tmp + echo "submitting gsi job to run in parallel..." + sbatch gsi_sa.j +endif + +echo "finish Set Experiment Run Parameters" +####################################################################### +# Move to Scratch Directory and Copy RC Files from Home Directory +####################################################################### +echo " Move to Scratch Directory and Copy RC Files from Home Directory " +cd $SCRDIR # SCRDIR=$CYCLEDIR/scratch + +# done in prep_forecast +#cp -rf $CYCLEDIR/RC/* . #moved/edited in prepForecast +#cp $CYCLEDIR/cap_restart . +#cp -rf $CYCLEDIR/*.rc . +##cp -rf $HOMDIR/*.nml . +#cp -rf $CYCLEDIR/*.yaml . +cp $GEOSBIN/bundleParser.py . + +cat fvcore_layout.rc >> input.nml + +set END_DATE = `grep '^\s*END_DATE:' CAP.rc | cut -d: -f2` +set NUM_SGMT = `grep '^\s*NUM_SGMT:' CAP.rc | cut -d: -f2` +set FSEGMENT = `grep '^\s*FCST_SEGMENT:' CAP.rc | cut -d: -f2` +set USE_SHMEM = `grep '^\s*USE_SHMEM:' CAP.rc | cut -d: -f2` + +####################################################################### +# Create HISTORY Collection Directories +####################################################################### +## all diag is written in colelction and then moved to holding outside scratch +#echo " Create HISTORY Collection Directories " +#set collections = '' +#foreach line ("`cat HISTORY.rc`") +# set firstword = `echo $line | awk '{print $1}'` +# set firstchar = `echo $firstword | cut -c1` +# set secondword = `echo $line | awk '{print $2}'` +# +# if ( $firstword == "::" ) goto done +# +# if ( $firstchar != "#" ) then +# set collection = `echo $firstword | sed -e "s/'//g"` +# set collections = `echo $collections $collection` +# if ( $secondword == :: ) goto done +# endif +# +# if ( $firstword == COLLECTIONS: ) then +# set collections = `echo $secondword | sed -e "s/'//g"` +# endif +#end +# +#done: +# foreach collection ( $collections ) +# echo "checking if $CYCLEDIR/$collection exists" +# if (! -e $CYCLEDIR/$collection ) mkdir $CYCLEDIR/$collection +# echo "checking if $CYCLEDIR/holding/$collection exists" +# if (! -e $CYCLEDIR/holding/$collection ) mkdir $CYCLEDIR/holding/$collection +# end + +####################################################################### +# Link Boundary Datasets +####################################################################### +echo " Link Boundary Datasets" +setenv BCSDIR /discover/nobackup/ltakacs/bcs/Icarus-NLv3/Icarus-NLv3_Reynolds +setenv SSTDIR /discover/nobackup/projects/gmao/share/gmao_ops/fvInput/g5gcm/bcs/realtime/OSTIA_REYNOLDS/2880x1440/ +setenv CHMDIR /discover/nobackup/projects/gmao/share/gmao_ops/fvInput_nc3 +setenv BCRSLV CF0090x6C_DE0360xPE0180 +setenv DATELINE DC +setenv EMISSIONS OPS_EMISSIONS + +setenv BCTAG `basename $BCSDIR` + +set FILE = linkbcs +/bin/rm -f $FILE +cat << _EOF_ > $FILE +#!/bin/csh -f + +/bin/mkdir -p ExtData +/bin/ln -sf $CHMDIR/* ExtData + + +# Precip correction +#/bin/ln -s /discover/nobackup/projects/gmao/share/gmao_ops/fvInput/merra_land/precip_CPCUexcludeAfrica-CMAP_corrected_MERRA/GEOSdas-2_1_4 ExtData/PCP + + /bin/ln -sf $BCSDIR/$BCRSLV/${BCRSLV}-Pfafstetter.til tile.data + if( -e $BCSDIR/$BCRSLV/${BCRSLV}-Pfafstetter.TIL) then + /bin/ln -sf $BCSDIR/$BCRSLV/${BCRSLV}-Pfafstetter.TIL tile.bin + endif + +# DAS or REPLAY Mode (AGCM.rc: pchem_clim_years = 1-Year Climatology) +# -------------------------------------------------------------------- +#/bin/ln -sf $BCSDIR/Shared/pchem.species.Clim_Prod_Loss.z_721x72.nc4 species.data + +# CMIP-5 Ozone Data (AGCM.rc: pchem_clim_years = 228-Years) +# ---------------------------------------------------------- +/bin/ln -sf $BCSDIR/Shared/pchem.species.CMIP-5.1870-2097.z_91x72.nc4 species.data + +# S2S pre-industrial with prod/loss of stratospheric water vapor +# (AGCM.rc: pchem_clim_years = 3-Years, and H2O_ProdLoss: 1 ) +# -------------------------------------------------------------- +#/bin/ln -sf $BCSDIR/Shared/pchem.species.CMIP-6.wH2OandPL.1850s.z_91x72.nc4 species.data + +# MERRA-2 Ozone Data (AGCM.rc: pchem_clim_years = 39-Years) +# ---------------------------------------------------------- +#/bin/ln -sf $BCSDIR/Shared/pchem.species.CMIP-5.MERRA2OX.197902-201706.z_91x72.nc4 species.data + +/bin/ln -sf $BCSDIR/Shared/*bin . +/bin/ln -sf $BCSDIR/Shared/*c2l*.nc4 . + +/bin/ln -sf $BCSDIR/$BCRSLV/visdf_${AGCM_IM}x${AGCM_JM}.dat visdf.dat +/bin/ln -sf $BCSDIR/$BCRSLV/nirdf_${AGCM_IM}x${AGCM_JM}.dat nirdf.dat +/bin/ln -sf $BCSDIR/$BCRSLV/vegdyn_${AGCM_IM}x${AGCM_JM}.dat vegdyn.data +/bin/ln -sf $BCSDIR/$BCRSLV/lai_clim_${AGCM_IM}x${AGCM_JM}.data lai.data +/bin/ln -sf $BCSDIR/$BCRSLV/green_clim_${AGCM_IM}x${AGCM_JM}.data green.data +/bin/ln -sf $BCSDIR/$BCRSLV/ndvi_clim_${AGCM_IM}x${AGCM_JM}.data ndvi.data + + + +/bin/ln -sf $BCSDIR/$BCRSLV/topo_DYN_ave_${AGCM_IM}x${AGCM_JM}.data topo_dynave.data +/bin/ln -sf $BCSDIR/$BCRSLV/topo_GWD_var_${AGCM_IM}x${AGCM_JM}.data topo_gwdvar.data +/bin/ln -sf $BCSDIR/$BCRSLV/topo_TRB_var_${AGCM_IM}x${AGCM_JM}.data topo_trbvar.data + + +if( -e $BCSDIR/$BCRSLV/Gnomonic_$BCRSLV.dat ) then +/bin/ln -sf $BCSDIR/$BCRSLV/Gnomonic_$BCRSLV.dat . +endif + + +_EOF_ + + + echo "/bin/ln -sf $SSTDIR/dataoceanfile_OSTIA_REYNOLDS_SST.2880x1440.2023.data sst.data" >> $FILE + echo "/bin/ln -sf $SSTDIR/dataoceanfile_OSTIA_REYNOLDS_ICE.2880x1440.2023.data fraci.data" >> $FILE + echo "/bin/ln -sf $SSTDIR/SEAWIFS_KPAR_mon_clim.2880x1440 SEAWIFS_KPAR_mon_clim.data" >> $FILE + +chmod +x linkbcs +cp linkbcs $CYCLEDIR + +####################################################################### +# Get Executable and RESTARTS +####################################################################### +echo " Get Executable and RESTARTS" +cp $GEOSBIN/GEOSgcm.x . + +set rst_files = `grep "RESTART_FILE" AGCM.rc | grep -v VEGDYN | grep -v "#" | cut -d ":" -f1 | cut -d "_" -f1-2` +set rst_file_names = `grep "RESTART_FILE" AGCM.rc | grep -v VEGDYN | grep -v "#" | cut -d ":" -f2` + +set chk_files = `grep "CHECKPOINT_FILE" AGCM.rc | grep -v "#" | cut -d ":" -f1 | cut -d "_" -f1-2` +set chk_file_names = `grep "CHECKPOINT_FILE" AGCM.rc | grep -v "#" | cut -d ":" -f2` + +set monthly_chk_names = `cat $CYCLEDIR/HISTORY.rc | grep -v '^[\t ]*#' | sed -n 's/\([^\t ]\+\).monthly:[\t ]*1.*/\1/p' | sed 's/$/_rst/' ` + +# Remove possible bootstrap parameters (+/-) +# ------------------------------------------ +set dummy = `echo $rst_file_names` +set rst_file_names = '' +foreach rst ( $dummy ) + set length = `echo $rst | awk '{print length($0)}'` + set bit = `echo $rst | cut -c1` + if( "$bit" == "+" | \ + "$bit" == "-" ) set rst = `echo $rst | cut -c2-$length` + set rst_file_names = `echo $rst_file_names $rst` +end + +# Copy Restarts to Scratch Directory +# ---------------------------------- +# Rsts moved to CYCLEDIR/scratch by getRSTGEOSCF +#foreach rst ( $rst_file_names $monthly_chk_names ) +# if(-e $CYCLEDIR/$rst ) cp $CYCLEDIR/$rst . & +#end +#wait + +# If any restart is binary, set NUM_READERS to 1 so that +# +-style bootstrapping of missing files can occur in +# MAPL. pbinary cannot do this, but pnc4 can. +# ------------------------------------------------------ +# maybe delete +set found_binary = 0 + +foreach rst ( $rst_file_names ) + if (-e $rst) then + set rst_type = `/usr/bin/file -Lb --mime-type $rst` + if ( $rst_type =~ "application/octet-stream" ) then + set found_binary = 1 + endif + endif +end + +if ($found_binary == 1) then + /bin/mv AGCM.rc AGCM.tmp + cat AGCM.tmp | sed -e "/^NUM_READERS/ s/\([0-9]\+\)/1/g" > AGCM.rc + /bin/rm AGCM.tmp +endif + +################################################################## +###### +###### Perform multiple iterations of Model Run +###### +################################################################## + +@ counter = 1 +while ( $counter <= ${NUM_SGMT} ) + +/bin/rm -f EGRESS + +cp -f $CYCLEDIR/CAP.rc . + +/bin/mv CAP.rc CAP.rc.orig +awk '{$1=$1};1' < CAP.rc.orig > CAP.rc + +# Set Time Variables for Current_(c), Ending_(e), and Segment_(s) dates +# --------------------------------------------------------------------- +set nymdc = `awk '{print $1}' cap_restart` +set nhmsc = `awk '{print $2}' cap_restart` +set nymde = `grep '^\s*END_DATE:' CAP.rc | cut -d: -f2 | awk '{print $1}'` +set nhmse = `grep '^\s*END_DATE:' CAP.rc | cut -d: -f2 | awk '{print $2}'` +set nymds = `grep '^\s*JOB_SGMT:' CAP.rc | cut -d: -f2 | awk '{print $1}'` +set nhmss = `grep '^\s*JOB_SGMT:' CAP.rc | cut -d: -f2 | awk '{print $2}'` + +# Compute Time Variables at the Finish_(f) of current segment +# ----------------------------------------------------------- +set nyear = `echo $nymds | cut -c1-4` +set nmonth = `echo $nymds | cut -c5-6` +set nday = `echo $nymds | cut -c7-8` +set nhour = `echo $nhmss | cut -c1-2` +set nminute = `echo $nhmss | cut -c3-4` +set nsec = `echo $nhmss | cut -c5-6` + @ dt = $nsec + 60 * $nminute + 3600 * $nhour + 86400 * $nday + +set nymdf = $nymdc +set nhmsf = $nhmsc +set date = `$GEOSBIN/tick $nymdf $nhmsf $dt` +set nymdf = $date[1] +set nhmsf = $date[2] +set year = `echo $nymdf | cut -c1-4` +set month = `echo $nymdf | cut -c5-6` +set day = `echo $nymdf | cut -c7-8` + + @ month = $month + $nmonth +while( $month > 12 ) + @ month = $month - 12 + @ year = $year + 1 +end + @ year = $year + $nyear + @ nymdf = $year * 10000 + $month * 100 + $day + +if( $nymdf > $nymde ) set nymdf = $nymde +if( $nymdf == $nymde ) then + if( $nhmsf > $nhmse ) set nhmsf = $nhmse +endif + +set yearc = `echo $nymdc | cut -c1-4` +set yearf = `echo $nymdf | cut -c1-4` + +# For Non-Reynolds SST, Modify local CAP.rc Ending date if Finish time exceeds Current year boundary +# -------------------------------------------------------------------------------------------------- +if( DE0360xPE0180 != DE0360xPE0180 ) then + if( $yearf > $yearc ) then + @ yearf = $yearc + 1 + @ nymdf = $yearf * 10000 + 0101 + set oldstring = `grep '^\s*END_DATE:' CAP.rc` + set newstring = "END_DATE: $nymdf $nhmsf" + /bin/mv CAP.rc CAP.tmp + cat CAP.tmp | sed -e "s?$oldstring?$newstring?g" > CAP.rc + endif +endif + +# Which ExtData are we using +set EXTDATA2G_TRUE = `grep -i '^\s*USE_EXTDATA2G:\s*\.TRUE\.' CAP.rc | wc -l` + +# Rename big ExtData files that are not needed +# -------------------------------------------- +set SC_TRUE = `grep -i '^\s*ENABLE_STRATCHEM:\s*\.TRUE\.' GEOS_ChemGridComp.rc | wc -l` +if ( $SC_TRUE == 0 && -e StratChem_ExtData.rc ) /bin/mv StratChem_ExtData.rc StratChem_ExtData.rc.NOT_USED +set GMI_TRUE = `grep -i '^\s*ENABLE_GMICHEM:\s*\.TRUE\.' GEOS_ChemGridComp.rc | wc -l` +if ( $GMI_TRUE == 0 && -e GMI_ExtData.rc ) /bin/mv GMI_ExtData.rc GMI_ExtData.rc.NOT_USED +set GCC_TRUE = `grep -i '^\s*ENABLE_GEOSCHEM:\s*\.TRUE\.' GEOS_ChemGridComp.rc | wc -l` +if ( $GCC_TRUE == 0 && -e GEOSCHEMchem_ExtData.rc ) /bin/mv GEOSCHEMchem_ExtData.rc GEOSCHEMchem_ExtData.rc.NOT_USED +set CARMA_TRUE = `grep -i '^\s*ENABLE_CARMA:\s*\.TRUE\.' GEOS_ChemGridComp.rc | wc -l` +if ( $CARMA_TRUE == 0 && -e CARMAchem_GridComp_ExtData.rc ) /bin/mv CARMAchem_GridComp_ExtData.rc CARMAchem_GridComp_ExtData.rc.NOT_USED +set DNA_TRUE = `grep -i '^\s*ENABLE_DNA:\s*\.TRUE\.' GEOS_ChemGridComp.rc | wc -l` +if ( $DNA_TRUE == 0 && -e DNA_ExtData.rc ) /bin/mv DNA_ExtData.rc DNA_ExtData.rc.NOT_USED +set ACHEM_TRUE = `grep -i '^\s*ENABLE_ACHEM:\s*\.TRUE\.' GEOS_ChemGridComp.rc | wc -l` +if ( $ACHEM_TRUE == 0 && -e GEOSachem_ExtData.rc ) /bin/mv GEOSachem_ExtData.rc GEOSachem_ExtData.rc.NOT_USED +set GOCART_DATA_TRUE = `grep -i '^\s*ENABLE_GOCART_DATA:\s*\.TRUE\.' GEOS_ChemGridComp.rc | wc -l` +if ( $GOCART_DATA_TRUE == 0 && -e GOCARTdata_ExtData.rc ) /bin/mv GOCARTdata_ExtData.rc GOCARTdata_ExtData.rc.NOT_USED + +# 1MOM and GFDL microphysics do not use WSUB_NATURE +# ------------------------------------------------- +if ($EXTDATA2G_TRUE == 0 ) then + /bin/mv WSUB_ExtData.rc WSUB_ExtData.tmp + cat WSUB_ExtData.tmp | sed -e '/^WSUB_NATURE/ s#ExtData.*#/dev/null#' > WSUB_ExtData.rc +else + /bin/mv WSUB_ExtData.yaml WSUB_ExtData.tmp + cat WSUB_ExtData.tmp | sed -e '/collection:/ s#WSUB_Wvar_positive_05hrdeg.*#/dev/null#' > WSUB_ExtData.yaml +endif +/bin/rm WSUB_ExtData.tmp + + + +# Generate the complete ExtData.rc +# -------------------------------- +if(-e ExtData.rc ) /bin/rm -f ExtData.rc +set extdata_files = `/bin/ls -1 *_ExtData.rc` + +# Switch to MODIS v6.1 data after Nov 2021 +if( $EXTDATA2G_TRUE == 0 ) then + set MODIS_Transition_Date = 20211101 + if ( ${EMISSIONS} == OPS_EMISSIONS && ${MODIS_Transition_Date} <= $nymdc ) then + cat $extdata_files | sed 's|\(qfed2.emis_.*\).006.|\1.061.|g' > ExtData.rc + else + cat $extdata_files > ExtData.rc + endif +endif + +if( $EXTDATA2G_TRUE == 1 ) then + + $GEOSBIN/construct_extdata_yaml_list.py GEOS_ChemGridComp.rc + touch ExtData.rc + +endif + +# Move GOCART to use RRTMGP Bands +# ------------------------------- +# UNCOMMENT THE LINES BELOW IF RUNNING RRTMGP +# +#set instance_files = `/bin/ls -1 *_instance*.rc` +#foreach instance ($instance_files) +# /bin/mv $instance $instance.tmp +# cat $instance.tmp | sed -e '/RRTMG/ s#RRTMG#RRTMGP#' > $instance +# /bin/rm $instance.tmp +#end + +# Link Boundary Conditions for Appropriate Date +# --------------------------------------------- +setenv YEAR 2023 #$yearc +./linkbcs + +if (! -e tile.bin) then +$GEOSBIN/binarytile.x tile.data tile.bin +endif + +# If running in dual ocean mode, link sst and fraci data here +#set yy = `cat cap_restart | cut -c1-4` +#echo $yy +#ln -sf $SSTDIR/dataoceanfile_MERRA2_SST.${OGCM_IM}x${OGCM_JM}.${yy}.data sst.data +#ln -sf $SSTDIR/dataoceanfile_MERRA2_ICE.${OGCM_IM}x${OGCM_JM}.${yy}.data fraci.data + +####################################################################### +# Split Saltwater Restart if detected +####################################################################### + +if ( (-e $SCRDIR/openwater_internal_rst) && (-e $SCRDIR/seaicethermo_internal_rst)) then + echo "Saltwater internal state is already split, good to go!" +else + if ( ( ( -e $SCRDIR/saltwater_internal_rst ) || ( -e $EXPDIR/saltwater_internal_rst) ) && ( $counter == 1 ) ) then + + echo "Found Saltwater internal state. Splitting..." + + # If saltwater_internal_rst is in EXPDIR move to SCRDIR + # ----------------------------------------------------- + if ( -e $EXPDIR/saltwater_internal_rst ) /bin/mv $EXPDIR/saltwater_internal_rst $SCRDIR + + # The splitter script requires an OutData directory + # ------------------------------------------------- + if (! -d OutData ) mkdir -p OutData + + # Run the script + # -------------- + $RUN_CMD 1 $GEOSBIN/SaltIntSplitter tile.data $SCRDIR/saltwater_internal_rst + + # Move restarts + # ------------- + /bin/mv OutData/openwater_internal_rst OutData/seaicethermo_internal_rst . + + # Remove OutData + # -------------- + /bin/rmdir OutData + + # Make decorated copies for restarts tarball + # ------------------------------------------ + cp openwater_internal_rst $EXPID.openwater_internal_rst.${edate}.${GCMVER}.${BCTAG}_${BCRSLV} + cp seaicethermo_internal_rst $EXPID.seaicethermo_internal_rst.${edate}.${GCMVER}.${BCTAG}_${BCRSLV} + + # Inject decorated copies into restarts tarball + # --------------------------------------------- + tar rf $CYCLEDIR/restarts/restarts.${edate}.tar $EXPID.*.${edate}.${GCMVER}.${BCTAG}_${BCRSLV} + + # Remove the decorated restarts + # ----------------------------- + /bin/rm $EXPID.*.${edate}.${GCMVER}.${BCTAG}_${BCRSLV} + + # Remove the saltwater internal restart + # ------------------------------------- + /bin/rm $SCRDIR/saltwater_internal_rst + else + echo "Neither saltwater_internal_rst, nor openwater_internal_rst and seaicethermo_internal_rst were found. Abort!" + exit 6 + endif +endif + +# Test Openwater Restart for Number of tiles correctness +# ------------------------------------------------------ + +if ( -x $GEOSBIN/rs_numtiles.x ) then + + set N_OPENW_TILES_EXPECTED = `grep '^\s*0' tile.data | wc -l` + set N_OPENW_TILES_FOUND = `$RUN_CMD 1 $GEOSBIN/rs_numtiles.x openwater_internal_rst | grep Total | awk '{print $NF}'` + + echo $N_OPENW_TILES_EXPECTED + echo $N_OPENW_TILES_FOUND + + if ( $N_OPENW_TILES_EXPECTED != $N_OPENW_TILES_FOUND ) then + echo "Error! Found $N_OPENW_TILES_FOUND tiles in openwater. Expect to find $N_OPENW_TILES_EXPECTED tiles." + echo "Your restarts are probably for a different ocean." + exit 7 + endif + +endif + +# Check for MERRA2OX Consistency +# ------------------------------ + +# The MERRA2OX pchem file is only valid until 201706, so this is a first +# attempt at a check to make sure you aren't using it and are past the date + +# Check for MERRA2OX by looking at AGCM.rc +set PCHEM_CLIM_YEARS = `awk '/pchem_clim_years/ {print $2}' AGCM.rc` + +# If it is 39, we are using MERRA2OX +if ( $PCHEM_CLIM_YEARS == 39 ) then + + # Grab the date from cap_restart + set YEARMON = `cat cap_restart | cut -c1-6` + + # Set a magic date + set MERRA2OX_END_DATE = "201706" + + # String comparison seems to work here... + if ( $YEARMON > $MERRA2OX_END_DATE ) then + echo "You seem to be using MERRA2OX pchem species file, but your simulation date [${YEARMON}] is after 201706. This file is only valid until this time." + exit 2 + endif +endif + +# Environment variables for MPI, etc +# ---------------------------------- +# potential ewok problem... +setenv I_MPI_ADJUST_ALLREDUCE 12 +setenv I_MPI_ADJUST_GATHERV 3 + +# This flag prints out the Intel MPI state. Uncomment if needed +#setenv I_MPI_DEBUG 9 +setenv I_MPI_SHM_HEAP_VSIZE 512 +setenv PSM2_MEMORY large +setenv I_MPI_EXTRA_FILESYSTEM 1 +setenv I_MPI_EXTRA_FILESYSTEM_FORCE gpfs + + +# Run bundleParser.py +#--------------------- +python bundleParser.py + +# If REPLAY, link necessary forcing files +# --------------------------------------- +set REPLAY_MODE = `grep '^\s*REPLAY_MODE:' AGCM.rc | cut -d: -f2` +if( $REPLAY_MODE == 'Exact' | $REPLAY_MODE == 'Regular' ) then + + set ANA_EXPID = `grep '^\s*REPLAY_ANA_EXPID:' AGCM.rc | cut -d: -f2` + set ANA_LOCATION = `grep '^\s*REPLAY_ANA_LOCATION:' AGCM.rc | cut -d: -f2` + + set REPLAY_FILE = `grep '^\s*REPLAY_FILE:' AGCM.rc | cut -d: -f2` + set REPLAY_FILE09 = `grep '^\s*REPLAY_FILE09:' AGCM.rc | cut -d: -f2` + set REPLAY_FILE_TYPE = `echo $REPLAY_FILE | cut -d"/" -f1 | grep -v %` + set REPLAY_FILE09_TYPE = `echo $REPLAY_FILE09 | cut -d"/" -f1 | grep -v %` + + # Modify GAAS_GridComp.rc and Link REPLAY files + # --------------------------------------------- + /bin/mv -f GAAS_GridComp.rc GAAS_GridComp.tmp + cat GAAS_GridComp.tmp | sed -e "s?aod/Y%y4/M%m2/${ANA_EXPID}.?aod/Y%y4/M%m2/${ANA_EXPID}.?g" > GAAS_GridComp.rc + + /bin/ln -sf ${ANA_LOCATION}/aod . + /bin/ln -sf ${ANA_LOCATION}/${REPLAY_FILE_TYPE} . + /bin/ln -sf ${ANA_LOCATION}/${REPLAY_FILE09_TYPE} . + + #link the actual FP files that were move to workdir + #temp changes as we will remove that .j script with jedi + /bin/ln -sf ${ANA_LOCATION}/${ANA_EXPID}.ana.eta.*.nc4 . + + +endif + +# Establish safe default number of OpenMP threads +# ----------------------------------------------- +setenv OMP_NUM_THREADS 1 + +# Run GEOSgcm.x +# ------------- +if( $USE_SHMEM == 1 ) $GEOSBIN/RmShmKeys_sshmpi.csh >& /dev/null + +if( $USE_IOSERVER == 1 ) then + set IOSERVER_OPTIONS = "--npes_model $MODEL_NPES --nodes_output_server $IOS_NODES" + + # Per SI Team, the multigroup server should always be used + # The ideal number of backend PEs is based on the number of HISTORY + # collections and number of IO nodes + + # First we figure out the number of collections in the HISTORY.rc (this is not perfect, but is close to right) + set NUM_HIST_COLS = `cat HISTORY.rc | sed -n '/^COLLECTIONS:/,/^ *::$/{p;/^ *::$/q}' | grep -v '^ *#' | wc -l` + + # Protect against divide by zero + if ($IOS_NODES == 0) then + echo "Something is wrong. IOSERVER asked for, but zero IO nodes provided" + exit 3 + endif + + # Now we divide that number of collections by the ioserver nodes + echo "NUM_BACKEND_PES = $NUM_BACKEND_PES" + set NUM_BACKEND_PES = `echo "scale=1;(($NUM_HIST_COLS - 1) / $IOS_NODES)" | bc | awk '{print int($1 + 0.5)}'` + + # Finally multigroup requires at least two backend pes + if ($NUM_BACKEND_PES < 2) set NUM_BACKEND_PES = 2 + + echo "IOSERVER_EXTRA = $IOSERVER_EXTRA" + set IOSERVER_EXTRA = "--oserver_type multigroup --npes_backend_pernode $NUM_BACKEND_PES" +else + set IOSERVER_OPTIONS = "" + set IOSERVER_EXTRA = "" +endif + + #set +e + #$RUN_CMD $NPES ./GEOSgcm.x $IOSERVER_OPTIONS $IOSERVER_EXTRA --logging_config 'logging.yaml' + $RUN_CMD $NPES ./GEOSgcm.x --logging_config 'logging.yaml' + #exit_code=$? + #set -e + +if( $USE_SHMEM == 1 ) $GEOSBIN/RmShmKeys_sshmpi.csh >& /dev/null + +# if something goes wrong EGRESS File wouldn't exist and rc will be -1 +if( -e EGRESS ) then + set rc = 0 +else + set rc = -1 +endif +echo GEOSgcm Run Status: $rc +if ( $rc == -1 ) exit -1 + +# write geos complete file (this tells the GSI run to stop) +if ( $RUN_GSI == 1 ) then + set geos_done = "geos_run.done" + touch ${geos_done} + echo "written geos checkpoint file: ${geos_done}" +endif + +####################################################################### +# Rename Final Checkpoints => Restarts for Next Segment and Archive +# Note: cap_restart contains the current NYMD and NHMS +####################################################################### + +# saveRstGEOSCF task in ewok saves checkpoints as rst to R2D2 for next cycle + +####################################################################### +# Move HISTORY Files to Holding Directory +####################################################################### + +# Move current files to /holding +# ------------------------------ +#echo "Move current files to /holding" +#cd $SCRDIR +#foreach collection ( $collections ) +# echo "Moving $collection" +# /bin/mv `/bin/ls -1 *.${collection}.*` $CYCLEDIR/holding/$collection +#end + +####################################################################### +# Update Iteration Counter +####################################################################### + +set enddate = `echo $END_DATE | cut -c1-8` +set capdate = `cat cap_restart | cut -c1-8` + +if ( $capdate < $enddate ) then +@ counter = $counter + 1 +else +@ counter = ${NUM_SGMT} + 1 +endif + +end # end of segment loop; remain in $SCRDIR diff --git a/src/swell/configuration/jedi/interfaces/geos_cf/namelists/geoschem_config.yml b/src/swell/configuration/jedi/interfaces/geos_cf/namelists/geoschem_config.yml new file mode 100755 index 000000000..47301bc5a --- /dev/null +++ b/src/swell/configuration/jedi/interfaces/geos_cf/namelists/geoschem_config.yml @@ -0,0 +1,362 @@ +--- +### geoschem_config.yml: GEOS-Chem Runtime configuration options. +### Customized for GCHP simulations using the KPP "fullchem" mechanism. +### +### NOTE: Add quotes around nitrogen oxide ('NO'), because YAML +### parsers will confuse this with a negative "no" value. + +#============================================================================ +# Simulation settings +#============================================================================ +simulation: + name: fullchem + chem_inputs_dir: /discover/nobackup/cakelle2/data/CHEM_INPUTS/ + species_database_file: ./species_database.yml + debug_printout: true + +#============================================================================ +# Settings for GEOS-Chem operations +#============================================================================ +operations: + + chemistry: + activate: true + linear_chemistry_aloft: + activate: true + use_linoz_for_O3: true + active_strat_H2O: + activate: true + use_static_bnd_cond: true + gamma_HO2: 0.2 + autoreduce_solver: + activate: false + use_target_threshold: + activate: true + oh_tuning_factor: 0.00005 + no2_tuning_factor: 0.0001 + use_absolute_threshold: + scale_by_pressure: true + absolute_threshold: 100.0 + keep_halogens_active: false + append_in_internal_timestep: false + + convection: + activate: false + + dry_deposition: + activate: true + CO2_effect: + activate: false + CO2_level: 600.0 + reference_CO2_level: 380.0 + diag_alt_above_sfc_in_m: 10 + + pbl_mixing: + activate: false + use_non_local_pbl: false + + photolysis: + #input_dir: /discover/nobackup/ewlundgr/data/ExtData/FAST_JX/v2021-10/ + input_dir: /discover/nobackup/projects/gmao/share/dasilva/fvInput/ExtData/chemistry/GEOSCHEMchem/v0.0.0/CHEM_INPUTS/FAST_JX/v2021-10/ + overhead_O3: + use_online_O3_from_model: true + use_column_O3_from_met: true + use_TOMS_SBUV_O3: false + photolyze_nitrate_aerosol: + activate: false + NITs_Jscale_JHNO3: 0.0 + NIT_Jscale_JHNO2: 0.0 + percent_channel_A_HONO: 66.667 + percent_channel_B_NO2: 33.333 + + rrtmg_rad_transfer_model: + activate: false + aod_wavelengths_in_nm: + - 550 + longwave_fluxes: false + shortwave_fluxes: false + clear_sky_flux: false + all_sky_flux: false + + transport: + activate: true + transported_species: + - ACET + - ACTA + - AERI + - ALD2 + - ALK4 + - AONITA + - AROMP4 + - AROMP5 + #- ASOA1 + #- ASOA2 + #- ASOA3 + #- ASOAN + - ASOG1 + - ASOG2 + - ASOG3 + - ATOOH + - BALD + - BCPI + - BCPO + - BENZ + - BENZP + - Br + - Br2 + - BrCl + - BrNO2 + - BrNO3 + - BrO + - BrSALA + - BrSALC + - BZCO3H + - BZPAN + - C2H2 + - C2H4 + - C2H6 + - C3H8 + - CCl4 + - CFC11 + - CFC113 + - CFC114 + - CFC115 + - CFC12 + - CH2Br2 + - CH2Cl2 + - CH2I2 + - CH2IBr + - CH2ICl + - CH2O + - CH3Br + - CH3CCl3 + - CH3Cl + - CH3I + - CH4 + - CHBr3 + - CHCl3 + - Cl + - Cl2 + - Cl2O2 + - ClNO2 + - ClNO3 + - ClO + - ClOO + - CLOCK + - CO + - CSL + - DMS + - DST1 + - DST2 + - DST3 + - DST4 + - EOH + - ETHLN + - ETHN + - ETHP + - ETNO3 + - ETP + - GLYC + - GLYX + - H1211 + - H1301 + - H2402 + - H2O + - H2O2 + - HAC + - HBr + - HC5A + - HCFC123 + - HCFC141b + - HCFC142b + - HCFC22 + - HCl + - HCOOH + - HI + - HMHP + - HMML + - HMS + - HNO2 + - HNO3 + - HNO4 + - HOBr + - HOCl + - HOI + - HONIT + - HPALD1 + - HPALD2 + - HPALD3 + - HPALD4 + - HPETHNL + - I + - I2 + - I2O2 + - I2O3 + - I2O4 + - IBr + - ICHE + - ICl + - ICN + - ICPDH + - IDC + - IDCHP + - IDHDP + - IDHPE + - IDN + - IEPOXA + - IEPOXB + - IEPOXD + - IHN1 + - IHN2 + - IHN3 + - IHN4 + - INDIOL + - INO + - INPB + - INPD + - IO + - IONITA + - IONO + - IONO2 + - IPRNO3 + - ISALA + - ISALC + - ISOP + - ITCN + - ITHN + - LIMO + - LVOC + - LVOCOA + - MACR + - MACR1OOH + - MAP + - MCRDH + - MCRENOL + - MCRHN + - MCRHNB + - MCRHP + - MCT + - MEK + - MENO3 + - MGLY + - MOH + - MONITA + - MONITS + - MONITU + - MP + - MPAN + - MPN + - MSA + - MTPA + - MTPO + - MVK + - MVKDH + - MVKHC + - MVKHCB + - MVKHP + - MVKN + - MVKPC + - N2O + - N2O5 + - NH3 + - NH4 + - NIT + - NITs + - 'NO' + - NO2 + - NO3 + - NPHEN + - NPRNO3 + - O3 + - OClO + - OCPI + - OCPO + - OCS + - OIO + - PAN + - pFe + - PHEN + - PIP + - PP + - PPN + - PROPNN + - PRPE + - PRPN + - PYAC + - R4N2 + - R4P + - RA3P + - RB3P + - RCHO + - RIPA + - RIPB + - RIPC + - RIPD + - RP + - SALA + - SALAAL + - SALACL + - SALC + - SALCAL + - SALCCL + - SO2 + - SO4 + - SO4s + - SOAGX + - SOAIE + - SOAP + - SOAS + - TOLU + #- TSOA0 + #- TSOA1 + #- TSOA2 + #- TSOA3 + #- TSOG0 + #- TSOG1 + #- TSOG2 + #- TSOG3 + - XYLE + + wet_deposition: + activate: true + +#============================================================================ +# Settings for GEOS-Chem aerosols +#============================================================================ +aerosols: + + carbon: + activate: true + brown_carbon: false + enhance_black_carbon_absorption: + activate: true + hydrophilic: 1.5 + hydrophobic: 1.0 + + complex_SOA: + activate: false + semivolatile_POA: false + + dust: + activate: true + acid_uptake_on_dust: false + + sea_salt: + activate: true + SALA_radius_bin_in_um: [0.01, 0.5] + SALC_radius_bin_in_um: [0.5, 8.0] + marine_organic_aerosols: false + + stratosphere: + settle_strat_aerosol: true + polar_strat_clouds: + activate: true + het_chem: true + allow_homogeneous_NAT: true + NAT_supercooling_req_in_K: 3.0 + supersat_factor_req_for_ice_nucl: 1.2 + calc_strat_aod: true + + sulfate: + activate: true + metal_cat_SO2_oxidation: true diff --git a/src/swell/suites/3dvar_cf_cycle/eva/increment-geos_cf.yaml b/src/swell/suites/3dvar_cf_cycle/eva/increment-geos_cf.yaml new file mode 100644 index 000000000..b32bc95f1 --- /dev/null +++ b/src/swell/suites/3dvar_cf_cycle/eva/increment-geos_cf.yaml @@ -0,0 +1,43 @@ +datasets: + +- group: increment + type: LatLon + filename: {{increment_file_path}} + name: experiment_increment + variables: [NO2, lat, lon] + +graphics: + + plotting_backend: Emcpy + figure_list: + + #map plot for NO2 increment (near surface) + - batch figure: + variables: [NO2] + figure: + figure size: [20,10] + layout: [1,1] + title: 'NO2 Increment from JEDI' + output name: '{{cycle_dir}}/eva/increment/map_plots/${variable}/inc_${variable}_surface.png' + plots: + - mapping: + projection: plcarr + domain: global + add_map_features: ['coastline'] + add_colorbar: + label: NO2 Increment + add_grid: + layers: + - type: MapGridded + longitude: + variable: experiment_increment::increment::lon + latitude: + variable: experiment_increment::increment::lat + data: + variable: experiment_increment::increment::NO2 + slices: '[71,...]' + label: NO2 increment (surface level) + colorbar: true + cmap: 'bwr' + vmin: -1e-10 + vmax: 1e-10 diff --git a/src/swell/suites/3dvar_cf_cycle/eva/jedi_log-geos_cf.yaml b/src/swell/suites/3dvar_cf_cycle/eva/jedi_log-geos_cf.yaml new file mode 100644 index 000000000..4ba4d12a0 --- /dev/null +++ b/src/swell/suites/3dvar_cf_cycle/eva/jedi_log-geos_cf.yaml @@ -0,0 +1,64 @@ +datasets: + +- type: JediLog + collection_name: JediLogTest + jedi_log_to_parse: '{{cycle_dir}}/jedi_variational_log.log' + data_to_parse: + convergence: true + +transforms: +- transform: arithmetic + new name: JediLogTest::convergence::${variable}_log + equals: log(JediLogTest::convergence::${variable}) + for: + variable: [residual_norm, norm_reduction] + +graphics: + + plotting_backend: Emcpy + figure_list: + + - figure: + layout: [3,1] + figure size: [12,10] + title: 'Residual Norm and Norm Reduction Plots' + output name: '{{cycle_dir}}/eva/jedi_log/convergence/residual_norm_reduction.png' + plots: + - add_xlabel: 'Total inner iteration number' + add_ylabel: 'Residual norm' + layers: + - type: LinePlot + x: + variable: JediLogTest::convergence::total_iteration + y: + variable: JediLogTest::convergence::residual_norm + color: 'black' + + - add_xlabel: 'Total inner iteration number' + add_ylabel: 'Log(norm reduction)' + layers: + - type: LinePlot + x: + variable: JediLogTest::convergence::total_iteration + y: + variable: JediLogTest::convergence::norm_reduction + color: 'black' + + - add_xlabel: 'Total inner iteration number' + add_ylabel: 'Log(reduction)' + add_legend: + layers: + - type: LinePlot + x: + variable: JediLogTest::convergence::total_iteration + y: + variable: JediLogTest::convergence::residual_norm_log + color: 'red' + label: 'Log(residual norm)' + - type: LinePlot + x: + variable: JediLogTest::convergence::total_iteration + y: + variable: JediLogTest::convergence::norm_reduction_log + color: 'blue' + label: 'Log norm reduction' diff --git a/src/swell/suites/3dvar_cf_cycle/eva/observations-geos_cf.yaml b/src/swell/suites/3dvar_cf_cycle/eva/observations-geos_cf.yaml new file mode 100644 index 000000000..e8188681a --- /dev/null +++ b/src/swell/suites/3dvar_cf_cycle/eva/observations-geos_cf.yaml @@ -0,0 +1,293 @@ +datasets: + +- name: experiment + type: IodaObsSpace + filenames: + - {{obs_path_file}} + groups: + - name: ObsValue + variables: &variables {{simulated_variables}} + - name: hofx0 + - name: hofx1 + - name: ombg + - name: oman + - name: MetaData + - name: EffectiveQC0 + - name: EffectiveQC1 + +transforms: + +# Generate Increment for JEDI +- transform: arithmetic + new name: experiment::increment::${variable} + equals: experiment::ombg::${variable}-experiment::oman::${variable} + for: + variable: *variables + +# Generate hofx0 that passed QC for JEDI +- transform: accept where + new name: experiment::hofx0PassedQc::${variable} + starting field: experiment::hofx0::${variable} + where: + - experiment::EffectiveQC0::${variable} == 0 + for: + variable: *variables + +# Generate hofx1 that passed QC for JEDI +- transform: accept where + new name: experiment::hofx1PassedQc::${variable} + starting field: experiment::hofx1::${variable} + where: + - experiment::EffectiveQC1::${variable} == 0 + for: + variable: *variables + +# Generate ombg that passed QC for JEDI +- transform: accept where + new name: experiment::ombgPassedQc::${variable} + starting field: experiment::ombg::${variable} + where: + - experiment::EffectiveQC0::${variable} == 0 + for: + variable: *variables + +# Generate oman that passed QC for JEDI +- transform: accept where + new name: experiment::omanPassedQc::${variable} + starting field: experiment::oman::${variable} + where: + - experiment::EffectiveQC1::${variable} == 0 + for: + variable: *variables + +# Generate obs that passed QC for JEDI +- transform: accept where + new name: experiment::ObsValuePassedQc::${variable} + starting field: experiment::ObsValue::${variable} + where: + - experiment::EffectiveQC0::${variable} == 0 + for: + variable: *variables + +graphics: + + plotting_backend: Emcpy + figure_list: + + # Correlation scatter plots + # ------------------------- + + # JEDI h(x) vs Observations + - batch figure: + variables: *variables + figure: + layout: [1,1] + title: 'Observations vs. JEDI h(x) | {{instrument_title}} | ${variable_title}' + output name: '{{cycle_dir}}/eva/{{instrument}}/correlation_scatter/${variable}/jedi_hofx_vs_obs_{{instrument}}_${variable}.png' + plots: + - add_xlabel: 'Observation Value' + add_ylabel: 'JEDI h(x)' + add_grid: + add_legend: + loc: 'upper left' + layers: + - type: Scatter + x: + variable: experiment::ObsValue::${variable} + y: + variable: experiment::hofx0PassedQc::${variable} + markersize: 5 + color: 'black' + label: 'JEDI h(x)_0 versus obs (passed QC in JEDI)' + - type: Scatter + x: + variable: experiment::ObsValue::${variable} + y: + variable: experiment::hofx1PassedQc::${variable} + markersize: 5 + color: 'red' + label: 'JEDI h(x)_1 versus obs (passed QC in JEDI)' + + # Histogram plots + # --------------- + + # JEDI h(x) vs Observations + - batch figure: + variables: *variables + dynamic options: + - type: histogram_bins + data variable: experiment::omanPassedQc::${variable} + number of bins rule: 'rice' + figure: + layout: [1,1] + title: 'Observations vs. JEDI h(x) | {{instrument_title}} | ${variable_title}' + output name: '{{cycle_dir}}/eva/{{instrument}}/histogram/${variable}/ombg_oman_{{instrument}}_${variable}.png' + plots: + - add_xlabel: 'Difference' + add_ylabel: 'Count' + set_xlim: [-5e-4, 5e-4] + add_legend: + loc: 'upper left' + statistics: + fields: + - field_name: experiment::ombgPassedQc::${variable} + xloc: 0.5 + yloc: -0.10 + kwargs: + color: 'black' + fontsize: 8 + fontfamily: monospace + - field_name: experiment::omanPassedQc::${variable} + xloc: 0.5 + yloc: -0.13 + kwargs: + color: 'red' + fontsize: 8 + fontfamily: monospace + statistics_variables: + - n + - min + - mean + - max + - std + layers: + - type: Histogram + data: + variable: experiment::ombgPassedQc::${variable} + color: 'red' + label: 'observations minus background ' + bins: ${dynamic_bins} + alpha: 0.5 + density: true + - type: Histogram + data: + variable: experiment::omanPassedQc::${variable} + color: 'blue' + label: 'observations minus analysis' + bins: ${dynamic_bins} + alpha: 0.5 + density: true + + # Map plots + # --------- + # Increment + - batch figure: + variables: *variables + dynamic options: + - type: vminvmaxcmap + data variable: experiment::ombgPassedQc::${variable} + figure: + figure size: [20,10] + layout: [2,1] + title: '{{instrument_title}} | Passed QC' + output name: '{{cycle_dir}}/eva/{{instrument}}/map_plots/${variable}/ombg_oman_{{instrument}}_${variable}.png' + plots: + - mapping: + projection: plcarr + domain: global + add_map_features: ['coastline'] + add_colorbar: + label: ObsValue + add_grid: + layers: + - type: MapScatter + longitude: + variable: experiment::MetaData::longitude + latitude: + variable: experiment::MetaData::latitude + data: + variable: experiment::ombgPassedQc::${variable} + markersize: 1 + label: OmAn + colorbar: true + cmap: ${dynamic_cmap} + vmin: ${dynamic_vmin} + vmax: ${dynamic_vmax} + + - mapping: + projection: plcarr + domain: global + add_map_features: ['coastline'] + add_colorbar: + label: ObsValue + add_grid: + layers: + - type: MapScatter + longitude: + variable: experiment::MetaData::longitude + latitude: + variable: experiment::MetaData::latitude + data: + variable: experiment::omanPassedQc::${variable} + markersize: 1 + label: OmBg + colorbar: true + cmap: ${dynamic_cmap} + vmin: ${dynamic_vmin} + vmax: ${dynamic_vmax} + + - batch figure: + variables: *variables + dynamic options: + - type: vminvmaxcmap + data variable: experiment::EffectiveQC1::${variable} + figure: + figure size: [20,10] + layout: [1,1] + title: '{{instrument_title}} | Passed QC' + output name: '{{cycle_dir}}/eva/{{instrument}}/map_plots/${variable}/effectiveQC_{{instrument}}_${variable}.png' + plots: + - mapping: + projection: plcarr + domain: global + add_map_features: ['coastline'] + add_colorbar: + label: EffectiveQC1 + add_grid: + layers: + - type: MapScatter + longitude: + variable: experiment::MetaData::longitude + latitude: + variable: experiment::MetaData::latitude + data: + variable: experiment::EffectiveQC1::${variable} + markersize: 2 + label: OmAn + colorbar: true + cmap: ${dynamic_cmap} + vmin: ${dynamic_vmin} + vmax: ${dynamic_vmax} + + - batch figure: + variables: *variables + dynamic options: + - type: vminvmaxcmap + data variable: experiment::increment::${variable} + figure: + figure size: [20,10] + layout: [1,1] + title: '{{instrument_title}} | Passed QC' + output name: '{{cycle_dir}}/eva/{{instrument}}/map_plots/${variable}/increment_{{instrument}}_${variable}.png' + plots: + - mapping: + projection: plcarr + domain: global + add_map_features: ['coastline'] + add_colorbar: + label: Increment (OmBg - OmAn) + add_grid: + layers: + - type: MapScatter + longitude: + variable: experiment::MetaData::longitude + latitude: + variable: experiment::MetaData::latitude + data: + variable: experiment::increment::${variable} + markersize: 2 + label: OmAn + colorbar: true + cmap: ${dynamic_cmap} + vmin: ${dynamic_vmin} + vmax: ${dynamic_vmax} diff --git a/src/swell/suites/3dvar_cf_cycle/flow.cylc b/src/swell/suites/3dvar_cf_cycle/flow.cylc new file mode 100644 index 000000000..c88c2ed5a --- /dev/null +++ b/src/swell/suites/3dvar_cf_cycle/flow.cylc @@ -0,0 +1,187 @@ +# (C) Copyright 2021- United States Government as represented by the Administrator of the +# National Aeronautics and Space Administration. All Rights Reserved. +# +# This software is licensed under the terms of the Apache Licence Version 2.0 +# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. + +# -------------------------------------------------------------------------------------------------- + +# Cylc suite for executing JEDI-based non-cycling variational data assimilation + +# -------------------------------------------------------------------------------------------------- + +[scheduler] + UTC mode = True + allow implicit tasks = False + +# -------------------------------------------------------------------------------------------------- + +[scheduling] + + initial cycle point = {{start_cycle_point}} + final cycle point = {{final_cycle_point}} + runahead limit = P0 + + [[graph]] + R1 = """ + # Triggers for non cycle time dependent tasks + # ------------------------------------------- + # Clone JEDI source code + CloneJedi + + # Build JEDI source code by linking + CloneJedi => BuildJediByLinking? + + # If not able to link to build create the build + BuildJediByLinking:fail? => BuildJedi + """ + + {% for cycle_time in cycle_times %} + {{cycle_time.cycle_time}} = """ + {% for model_component in model_components %} + {% if cycle_time[model_component] %} + # Task triggers for: {{model_component}} + # ------------------ + # Ensure previous cycle completes before starting this one + CleanCycle-{{model_component}}[-{{models[model_component]["window_length"]}}] => GetBackground-{{model_component}} + + # Generate background error covariance + GetBackground-{{model_component}} => RunJediVariationalExecutable-{{model_component}} + + # Perform staging that is cycle dependent + StageJediCycle-{{model_component}} + + # Run Jedi variational executable + BuildJediByLinking[^]? | BuildJedi[^] => RunJediVariationalExecutable-{{model_component}} + StageJediCycle-{{model_component}} => RunJediVariationalExecutable-{{model_component}} + GetBackground-{{model_component}} => RunJediVariationalExecutable-{{model_component}} + + GetObservations-{{model_component}} => RenderJediObservations-{{model_component}} + RenderJediObservations-{{model_component}} => RunJediVariationalExecutable-{{model_component}} + + # Prepare forecast task, Update RC files, and create scratch directory + RunJediVariationalExecutable-{{model_component}} => PrepForecast-{{model_component}} + + # Get restart files from R2D2 + PrepForecast-{{model_component}} => GetRestart-{{model_component}} + + # Run forecast + GetRestart-{{model_component}} => RunForecast-{{model_component}} + + # Save forecast + RunForecast-{{model_component}} => SaveForecast-{{model_component}} + + # Save restart files to R2D2 + RunForecast-{{model_component}} => SaveRestart-{{model_component}} + + # EvaObservations + RunJediVariationalExecutable-{{model_component}} => EvaObservations-{{model_component}} + + # EvaJediLog + RunJediVariationalExecutable-{{model_component}} => EvaJediLog-{{model_component}} + + # EvaIncrement + RunJediVariationalExecutable-{{model_component}} => EvaIncrement-{{model_component}} + + # Save observations + RunJediVariationalExecutable-{{model_component}} => SaveObsDiags-{{model_component}} + + # Clean up large files + EvaObservations-{{model_component}} & EvaJediLog-{{model_component}} & EvaIncrement-{{model_component}} & + SaveObsDiags-{{model_component}} & SaveRestart-{{model_component}} => CleanCycle-{{model_component}} + + {% endif %} + {% endfor %} + """ + {% endfor %} + +# -------------------------------------------------------------------------------------------------- + +[runtime] + + # Task defaults + # ------------- + [[root]] + pre-script = "source $CYLC_SUITE_DEF_PATH/modules" + + [[[environment]]] + datetime = $CYLC_TASK_CYCLE_POINT + config = $CYLC_SUITE_DEF_PATH/experiment.yaml + + # Tasks + # ----- + [[CloneJedi]] + script = "swell task CloneJedi $config" + + [[BuildJediByLinking]] + script = "swell task BuildJediByLinking $config" + + [[BuildJedi]] + script = "swell task BuildJedi $config" + platform = {{platform}} + execution time limit = {{scheduling["BuildJedi"]["execution_time_limit"]}} + [[[directives]]] + {%- for key, value in scheduling["BuildJedi"]["directives"]["all"].items() %} + --{{key}} = {{value}} + {%- endfor %} + + {% for model_component in model_components %} + [[StageJediCycle-{{model_component}}]] + script = "swell task StageJedi $config -d $datetime -m {{model_component}}" + + [[GetBackground-{{model_component}}]] + script = "swell task GetBackground $config -d $datetime -m {{model_component}}" + + [[GetObservations-{{model_component}}]] + script = "swell task GetObservations $config -d $datetime -m {{model_component}}" + + [[RenderJediObservations-{{model_component}}]] + script = "swell task RenderJediObservations $config -d $datetime -m {{model_component}}" + + [[RunJediVariationalExecutable-{{model_component}}]] + script = "swell task RunJediVariationalExecutable $config -d $datetime -m {{model_component}}" + platform = {{platform}} + execution time limit = {{scheduling["RunJediVariationalExecutable"]["execution_time_limit"]}} + [[[directives]]] + {%- for key, value in scheduling["RunJediVariationalExecutable"]["directives"][model_component].items() %} + --{{key}} = {{value}} + {%- endfor %} + + [[GetRestart-{{model_component}}]] + script = "swell task GetRestart $config -d $datetime -m {{model_component}}" + + [[PrepForecast-{{model_component}}]] + script = "swell task PrepForecast $config -d $datetime -m {{model_component}}" + + [[RunForecast-{{model_component}}]] + script = "swell task RunForecast $config -d $datetime -m {{model_component}}" + + [[SaveForecast-{{model_component}}]] + script = "swell task SaveForecast $config -d $datetime -m {{model_component}}" + + [[SaveRestart-{{model_component}}]] + script = "swell task SaveRestart $config -d $datetime -m {{model_component}}" + + [[EvaJediLog-{{model_component}}]] + script = "swell task EvaJediLog $config -d $datetime -m {{model_component}}" + + [[EvaIncrement-{{model_component}}]] + script = "swell task EvaIncrement $config -d $datetime -m {{model_component}}" + + [[EvaObservations-{{model_component}}]] + script = "swell task EvaObservations $config -d $datetime -m {{model_component}}" + platform = {{platform}} + execution time limit = {{scheduling["EvaObservations"]["execution_time_limit"]}} + [[[directives]]] + {%- for key, value in scheduling["EvaObservations"]["directives"][model_component].items() %} + --{{key}} = {{value}} + {%- endfor %} + + [[SaveObsDiags-{{model_component}}]] + script = "swell task SaveObsDiags $config -d $datetime -m {{model_component}}" + + [[CleanCycle-{{model_component}}]] + script = "swell task CleanCycle $config -d $datetime -m {{model_component}}" + {% endfor %} + +# -------------------------------------------------------------------------------------------------- diff --git a/src/swell/suites/3dvar_cf_cycle/suite_config.py b/src/swell/suites/3dvar_cf_cycle/suite_config.py new file mode 100644 index 000000000..7226eaeb3 --- /dev/null +++ b/src/swell/suites/3dvar_cf_cycle/suite_config.py @@ -0,0 +1,106 @@ +# -------------------------------------------------------------------------------------------------- +# @package configuration +# +# Class containing the configuration. This is a dictionary that is converted from +# an input yaml configuration file. Various function are included for interacting with the +# dictionary. +# +# -------------------------------------------------------------------------------------------------- + + +from swell.utilities.swell_questions import QuestionContainer, QuestionList +from swell.utilities.question_defaults import QuestionDefaults as qd +from swell.suites.suite_questions import SuiteQuestions as sq + +from enum import Enum + + +# -------------------------------------------------------------------------------------------------- + +class SuiteConfig(QuestionContainer, Enum): + + # -------------------------------------------------------------------------------------------------- + + _3dvar_cf_cycle_tier1 = QuestionList( + list_name="3dvar_cf_cycle", + questions=[ + sq.common, + qd.start_cycle_point("2023-08-10T00:00:00Z"), + qd.final_cycle_point("2023-08-10T06:00:00Z"), + qd.jedi_build_method("use_existing"), + qd.model_components(['geos_cf']), + qd.check_for_obs(False) + ], + geos_cf=[ + qd.window_length("PT6H"), + qd.window_type("3D"), + qd.horizontal_resolution("c90"), + qd.npx(91), + qd.npy(91), + qd.npx_proc(2), + qd.npy_proc(2), + qd.vertical_resolution(72), + qd.analysis_variables(["volume_mixing_ratio_of_no2"]), + qd.background_experiment("swell_test"), + qd.rst_experiment("swell_test"), + qd.rst_file_types(['achem_internal', + 'aiau_import', + 'cabc_internal', + 'cabr_internal', + 'caoc_internal', + 'catch_internal', + 'du_internal', + 'fvcore_internal', + 'geoschemchem_import', + 'geoschemchem_internal', + 'gocart_import', + 'gocart_internal', + 'gwd_import', + 'hemco_import', + 'hemco_internal', + 'irrad_internal', + 'lake_internal', + 'landice_internal', + 'moist_import', + 'moist_internal', + 'ni_internal', + 'openwater_internal', + 'pchem_internal', + 'saltwater_import', + 'seaicethermo_internal', + 'solar_internal', + 'ss_internal', + 'su_internal', + 'surf_import', + 'tr_import', + 'tr_internal', + 'turb_import', + 'turb_internal']), + qd.observations([ + "tempo_no2_tropo", + "tropomi_s5p_no2_tropo", + ]), + # forecast settings + # mom6_iau is available. I don't know if we want run 3dvar without iau + qd.iau(True), + qd.forecast_length('PT12H'), ## can be hardcoded for now. make sure the name is correct + qd.forecast_output_frequency('PT3H'), + qd.clean_patterns(['*.nc4', '*.txt', 'logfile.*.out']), + qd.inc_template('/discover/nobackup/mabdiosk/rundir/handle_inc/GCC_c90_FPens.geoscf_jedi.20210805_0600z.nc4'), + qd.geos_cf_install_dir('/discover/nobackup/mabdiosk/GEOS-mil/GEOSgcm/install'), + qd.geos_cf_run_dir('/discover/nobackup/mabdiosk/rundir/GCv14.0_GCMv1.17_c90_Skylab'), + qd.swell_static_files('/discover/nobackup/projects/gmao/geos_cf_dev/SwellStaticFiles'), + qd.geosfp_path('/discover/nobackup/projects/gmao/geos_cf_dev/jbarre') + ] + ) + + # -------------------------------------------------------------------------------------------------- + + _3dvar_cf_cycle = QuestionList( + list_name="3dvar_cf_cycle", + questions=[ + _3dvar_cf_cycle_tier1 + ] + ) + + # -------------------------------------------------------------------------------------------------- diff --git a/src/swell/tasks/clean_cycle.py b/src/swell/tasks/clean_cycle.py index 30221edf8..e95d75b30 100644 --- a/src/swell/tasks/clean_cycle.py +++ b/src/swell/tasks/clean_cycle.py @@ -7,7 +7,9 @@ # -------------------------------------------------------------------------------------------------- +import isodate import os +import shutil from swell.tasks.base.task_base import taskBase from swell.utilities.datetime_util import datetime_formats from datetime import datetime as dt @@ -87,6 +89,21 @@ def execute(self) -> None: os.remove(item_to_remove) + # Clean the previous cycle's scratch directory now that this cycle has retrieved + # any restart/checkpoint files it needed (which may have been symlinked from there) + window_length = self.config.window_length(None) + + if window_length is not None and self.cycle_time_dto() != self.start_cycle_point_dto(): + prev_cycle_time = self.cycle_time_dto() - isodate.parse_duration(window_length) + prev_scratch_dir = os.path.join( + self.experiment_path(), 'run', + prev_cycle_time.strftime(datetime_formats['directory_format']), + self.__model__, 'scratch' + ) + if os.path.isdir(prev_scratch_dir): + self.logger.info(f'Removing previous cycle scratch directory: {prev_scratch_dir}') + shutil.rmtree(prev_scratch_dir) + # Have date information for the cycle done file time_short = dt.today().strftime(datetime_formats['directory_format']) diff --git a/src/swell/tasks/get_background.py b/src/swell/tasks/get_background.py index 855d8d204..96b352e33 100644 --- a/src/swell/tasks/get_background.py +++ b/src/swell/tasks/get_background.py @@ -38,12 +38,22 @@ def execute(self) -> None: bkg_steps = [] # Parse config - background_experiment = self.config.background_experiment() background_frequency = self.config.background_frequency(None) horizontal_resolution = self.config.horizontal_resolution() window_length = self.config.window_length() window_type = self.config.window_type() + + # For experiments with cycle in the suite name: + # for the first cycle, use background_experiment in config as the experiment id for fetching from r2d2 + # for cycles after the first one, use the current experiment id for fetching from r2d2 + if self.cycle_time_dto() != self.start_cycle_point_dto() and 'cycle' in self.suite_name(): + background_experiment = self.config.r2d2_experiment_id() + else: + background_experiment = self.config.background_experiment() + + self.logger.info(f'Fetching background from experiment {background_experiment}') + # Get window parameters local_background_time = self.da_window_params.local_background_time(window_length, window_type) diff --git a/src/swell/tasks/get_restart.py b/src/swell/tasks/get_restart.py new file mode 100644 index 000000000..c2c74bd2c --- /dev/null +++ b/src/swell/tasks/get_restart.py @@ -0,0 +1,76 @@ +# (C) Copyright 2021- United States Government as represented by the Administrator of the +# National Aeronautics and Space Administration. All Rights Reserved. +# +# This software is licensed under the terms of the Apache Licence Version 2.0 +# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. + + +# -------------------------------------------------------------------------------------------------- + + +from swell.tasks.base.task_base import taskBase +from swell.utilities.r2d2 import load_r2d2_credentials + +import isodate +import os +import r2d2 + +# -------------------------------------------------------------------------------------------------- + +r2d2_model_dict = { + 'geos_cf': 'geos_cf', +} + + +# -------------------------------------------------------------------------------------------------- + +class GetRestart(taskBase): + + def execute(self) -> None: + """Fetches rst files for a given experiment and cycle from R2D2 + + """ + + rst_file_types = self.config.rst_file_types() + + + cycle_dir = self.cycle_dir() + scratch_dir = os.path.join(cycle_dir, 'scratch') + model = self.__model__ + + horizontal_resolution = self.config.horizontal_resolution() + + window_length = self.config.window_length() + window_begin = self.da_window_params.window_begin(window_length, dto=True) + + window_begin_prev = window_begin - isodate.parse_duration(window_length) + rst_step = window_length + + # Use rst_experiment for first cycle + if self.cycle_time_dto() == self.start_cycle_point_dto(): + rst_exp = self.config.rst_experiment() + else: + rst_exp = self.config.r2d2_experiment_id() + + self.logger.info(f'Fetching rst files from experiment {rst_exp}') + + for file_type in rst_file_types: + base = os.path.join(scratch_dir,file_type) + target_file=f'{base}_rst' + self.logger.info(f'Fetching {file_type} to {target_file}') + r2d2.fetch( + model=model, + item='forecast', + experiment=rst_exp, + step=rst_step, + resolution=horizontal_resolution, + date=window_begin_prev.strftime('%Y-%m-%dT%H:%M:%SZ'), + target_file=target_file, + file_extension='nc', + file_type=file_type, + ) + + # Change permission + os.chmod(target_file, 0o644) + +# -------------------------------------------------------------------------------------------------- diff --git a/src/swell/tasks/prep_forecast.py b/src/swell/tasks/prep_forecast.py new file mode 100644 index 000000000..74beb6095 --- /dev/null +++ b/src/swell/tasks/prep_forecast.py @@ -0,0 +1,331 @@ +# (C) Copyright 2021- United States Government as represented by the Administrator of the +# National Aeronautics and Space Administration. All Rights Reserved. +# +# This software is licensed under the terms of the Apache Licence Version 2.0 +# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. + + +# -------------------------------------------------------------------------------------------------- + +import math +import os +import shutil +import tarfile +from multiprocessing import Pool + +import isodate +import netCDF4 as nc +import numpy as np +import xarray as xr + +from swell.tasks.base.task_base import taskBase +from swell.utilities.shell_commands import run_subprocess + +# -------------------------------------------------------------------------------------------------- + + +class PrepForecast(taskBase): + + # ---------------------------------------------------------------------------------------------- + + def execute(self) -> None: + + """ + Prepares scratch directory for running the model by creating the directory + within the run directory and updating the .rc files. + """ + + # Create scratch directory under the current cycle run directory + # ------------------------------------------------------------------------------------ + cycle_dir = self.cycle_dir() + self.scratch_dir = os.path.join(cycle_dir, 'scratch') + + if os.path.isdir(self.scratch_dir): + shutil.rmtree(self.scratch_dir) + self.logger.info(f'Remove existing {self.scratch_dir}') + + os.makedirs(self.scratch_dir, mode=0o755) + self.logger.info(f'Creating scratch directory: {self.scratch_dir}') + + # Gather config values + # -------------------- + self.expid = self.experiment_id() + self.window_length = self.config.window_length() + self.forecast_length = self.config.forecast_length() + self.forecast_output_frequency = self.config.forecast_output_frequency() + self.resolution = self.config.horizontal_resolution() + self.an_vars_long = self.config.analysis_variables() + + self.geos_cf_run_dir = self.config.geos_cf_run_dir() + self.geos_cf_install_dir = self.config.geos_cf_install_dir() + + self.namelists_dir = os.path.join(self.experiment_config_path(), + 'jedi', 'interfaces', 'geos_cf', 'namelists') + + self.fp_exp = self.config.geosfp_exp() + self.fp_loc = self.config.geosfp_path() + + # Derive window times + # ------------------- + self.parse_andate = self.cycle_time_dto() + self.parse_wbegin = self.da_window_params.window_begin(self.window_length, dto=True) + self.parse_wend = self.da_window_params.window_end_iso(self.window_length, dto=True) + self.parse_wlen = isodate.parse_duration(self.window_length) + self.parse_fclen = isodate.parse_duration(self.forecast_length) + + # Determine analysis variables for GEOS-CF (NO2 and CO) + # ------------------------------------------------------- + an_vars_long_tg = ['volume_mixing_ratio_of_no2', 'volume_mixing_ratio_of_co'] + self.an_vars_compo = [] + for an_var in an_vars_long_tg: + if an_var in self.an_vars_long: + self.an_vars_compo.append(an_var.split('_')[-1].upper()) + + # Section 2: Create GEOS-CF increment files + # ------------------------------------------ + self.logger.info('Creating GEOS-CF increment files') + self.create_geos_cf_increments() + + # Section 3: Get GEOS FP analysis files for replay + # ----------------------------------------------- + self.logger.info('Fetching GEOS FP analysis files for replay') + self.get_geosfp_replay_files() + + # Section 4: Copy and update GEOS-CF namelist files + # --------------------------------------------------- + self.logger.info('Copying and updating GEOS-CF namelist/RC files') + self.prepare_namelists() + + # ---------------------------------------------------------------------------------------------- + + def replace_string(self, filename: str, string1: str, string2: str) -> None: + """Replace string1 with string2 in-place in filename.""" + + with open(filename, 'r') as f: + content = f.read() + with open(filename, 'w') as f: + f.write(content.replace(string1, string2)) + + # ---------------------------------------------------------------------------------------------- + + def create_geos_cf_increments(self) -> None: + """Convert JEDI increment files to GEOS-CF format using the increment template.""" + + inc_template = self.config.inc_template() + + tstring_date = (self.parse_andate.strftime('%Y-%m-%d') + ' ' + + self.parse_andate.strftime('%H:%M:%S')) + tstring = f'minutes since {tstring_date}' + + # jedi.inc.%y4%m2%d2.%h2z.nc + output_date = (self.parse_andate.strftime('%Y%m%d') + '.' + + self.parse_andate.strftime('%H') + 'z') + + jedi_date = self.parse_andate.strftime('%Y%m%d_%H%M%Sz') + #jedifile = os.path.join(self.scratch_dir, f'{self.expid}.inc.{jedi_date}.bkg.nc') + # make sure the filename is correct + #swell-3dvar_cf_cycle.increment-iter1.20230805_180000z.nc4 + # .inc.%yyyy%mm%dd_%hh%MM%ssz.nc4 + #jedifile = os.path.join(self.cycle_dir(), f'{self.expid}.increment-iter1.{jedi_date}.nc4') + jedifile = os.path.join(self.cycle_dir(), f'{self.expid}.inc.{jedi_date}.nc4') + jedigeosfile = os.path.join(self.scratch_dir, f'jedi.inc.{output_date}.nc') + + if not os.path.exists(jedifile): + self.logger.info(f'Increment file {jedifile} not found, skipping increment creation') + return + + inc = xr.open_dataset(jedifile) + template_ds = xr.open_dataset(inc_template) + out = template_ds.copy() + for var in self.an_vars_compo: + if var in inc and var in out: + out[var].values[:] = inc[var].values[:] + out.to_netcdf(jedigeosfile) + + run_subprocess(self.logger, ['/bin/bash', '-c', + f'ncatted -O -a units,time,o,c,"{tstring}" {jedigeosfile}']) + + # ---------------------------------------------------------------------------------------------- + + def get_geosfp_replay_files(self) -> None: + """Fetch GEOS FP analysis files needed for replay over the forecast length.""" + + n_win_step = math.ceil(self.parse_fclen / self.parse_wlen) + #ensemble_packet = self.get_ensemble_packet() + + for wstep in range(n_win_step): + fc_date = self.parse_andate + wstep * self.parse_wlen + anYYYY = fc_date.strftime('%Y') + anMM = fc_date.strftime('%m') + anDD = fc_date.strftime('%d') + anHH = fc_date.strftime('%H') + date_path = f'Y{anYYYY}/M{anMM}' + wend_date = self.parse_wend + wstep * self.parse_wlen + + fp_path = f'{self.fp_loc}/{self.fp_exp}/ana/{date_path}' + fp_file = (f'{self.fp_exp}.ana.eta.' + f'{anYYYY}{anMM}{anDD}_{anHH}00z.nc4') + shutil.copy(f'{fp_path}/{fp_file}', self.scratch_dir) + + +# if ensemble_packet is not None: +# num_mem = int(ensemble_packet) + 1 +# str_mem = f'mem{int(num_mem):03}' +# weHH = wend_date.strftime('%H') +# fp_path = f'{self.fp_loc}/{self.fp_exp}/atmens/{date_path}' +# fp_arch = (f'{self.fp_exp}.atmens_eana.' +# f'{anYYYY}{anMM}{anDD}_{weHH}z.tar') +# fp_file = (f'{self.fp_exp}.ana.eta.' +# f'{anYYYY}{anMM}{anDD}_{anHH}00z.nc4') +# fp_arch_path = (f'{self.fp_exp}.atmens_eana.' +# f'{anYYYY}{anMM}{anDD}_{weHH}z/{str_mem}/{fp_file}') +# shutil.copy(f'{fp_path}/{fp_arch}', self.scratch_dir) +# arch_local = os.path.join(self.scratch_dir, fp_arch) +# with tarfile.open(arch_local, 'r') as tar: +# tar_mem = tar.getmember(fp_arch_path) +# tar_mem.name = os.path.basename(tar_mem.name) +# tar.extract(tar_mem, path=self.scratch_dir) +# os.remove(arch_local) +# else: +# fp_path = f'{self.fp_loc}/{self.fp_exp}/ana/{date_path}' +# fp_file = (f'{self.fp_exp}.ana.eta.' +# f'{anYYYY}{anMM}{anDD}_{anHH}00z.nc4') +# shutil.copy(f'{fp_path}/{fp_file}', self.scratch_dir) + + # ---------------------------------------------------------------------------------------------- + + def prepare_namelists(self) -> None: + """Copy GEOS-CF namelist/RC files into scratch_dir and update placeholders.""" + + scratch_dir = self.scratch_dir + namelists_dir = self.namelists_dir + + resolution = self.resolution + fp_exp = self.fp_exp + parse_wbegin = self.parse_wbegin + parse_wend = self.parse_wend + parse_fclen = self.parse_fclen + + + # Copy all static files in RC/ in GEOS-CF run directory to scratch + # ---------------------------------------------------------------- + src_rc = os.path.join(self.geos_cf_run_dir, 'RC') + self.logger.info(f'Copy files from {src_rc} to {scratch_dir}') + + for item in os.listdir(src_rc): + src = os.path.join(src_rc, item) + dst = os.path.join(scratch_dir, item) + + if os.path.isdir(src): + shutil.copytree(src, dst, dirs_exist_ok=True) + else: + shutil.copy2(src, dst) + + # Copy template namelist files + # -------------------------- + for fname in ['cap_restart', 'logging.yaml', 'GEOSCHEMchem_ExtData.yaml', + 'HEMCO_Config.rc', 'geoschem_config.yml']: + + src = os.path.join(namelists_dir, fname) + self.logger.info(f'Copy {src} to {scratch_dir}') + + if os.path.exists(src): + shutil.copy(src, scratch_dir) + + shutil.copy(os.path.join(namelists_dir, f'AGCM_{resolution}.rc'), + os.path.join(scratch_dir, 'AGCM.rc')) + + # Update AGCM.rc placeholders + # --------------------------- + agcm_rc = os.path.join(scratch_dir, 'AGCM.rc') + self.replace_string(agcm_rc, '>>SWELL_FP_EXP<<', fp_exp) + self.replace_string(agcm_rc, '>>SWELL_SCRATCHDIR<<', scratch_dir) + + weYYYY = parse_wend.strftime('%Y') + weMM = parse_wend.strftime('%m') + weDD = parse_wend.strftime('%d') + weHH = parse_wend.strftime('%H') + self.replace_string(agcm_rc, '>>SWELL_FC6H_DATE<<', f'{weYYYY}{weMM}{weDD}') + self.replace_string(agcm_rc, '>>SWELL_FC6H_H<<', f'{weHH}0000') + + # Update HISTORY.rc placeholders + # ------------------------------ + history_src = os.path.join(namelists_dir, 'HISTORY.rc') + history_dst = os.path.join(scratch_dir, 'HISTORY.rc') + shutil.copy(history_src, history_dst) + + if resolution == 'c90': + grid_label = 'PE90x540-CF' + elif resolution == 'c360': + grid_label = 'PE360x2160-CF' + else: + raise ValueError(f'Unsupported horizontal resolution for HISTORY.rc grid label: {resolution}') + + self.replace_string(history_dst, '>>SWELL_GEOSCF_JEDI_GRID<<', grid_label) + + freq_dur = isodate.parse_duration(self.forecast_output_frequency) + freq_total_secs = int(freq_dur.total_seconds()) + freq_hh = freq_total_secs // 3600 + freq_mm = (freq_total_secs % 3600) // 60 + freq_ss = freq_total_secs % 60 + freq_geoscf = f'{freq_hh:02d}{freq_mm:02d}{freq_ss:02d}' + self.replace_string(history_dst, '>>SWELL_FC_OUTPUT_FREQ<<', freq_geoscf) + + # Update GEOSCHEMchem_GridComp.rc placeholders + # -------------------------------------------- + num_an_vars = len(self.an_vars_compo) + gridcomp_src = os.path.join(namelists_dir, 'GEOSCHEMchem_GridComp.rc') + gridcomp_dst = os.path.join(scratch_dir, 'GEOSCHEMchem_GridComp.rc') + shutil.copy(gridcomp_src, gridcomp_dst) + self.replace_string(gridcomp_dst, '>>SWELL_NUM_AN_VARS<<', str(num_an_vars)) + + for index, an_var in enumerate(self.an_vars_compo): + self.replace_string(gridcomp_dst, + f'#Analysis_Settings_Spec00{index + 1}:', + f'Analysis_Settings_Spec00{index + 1}: ' + f'GEOSCHEMchem_AnaSettings_{an_var}.rc') + + # Update GEOSCHEMchem_AnaSettings_.rc files placeholders + # ----------------------------------------------------------- + for an_var in self.an_vars_compo: + ana_src = os.path.join(namelists_dir, f'GEOSCHEMchem_AnaSettings_{an_var}.rc') + ana_dst = os.path.join(scratch_dir, f'GEOSCHEMchem_AnaSettings_{an_var}.rc') + if os.path.exists(ana_src): + shutil.copy(ana_src, ana_dst) + self.replace_string(ana_dst, '>>SWELL_RUNDIR<<', scratch_dir) + + # Write cap_restart with window begin date + # ----------------------------------------- + cap_restart = os.path.join(scratch_dir, 'cap_restart') + forecast_date = (parse_wbegin.strftime('%Y%m%d') + ' ' + + parse_wbegin.strftime('%H%M%S')) + with open(cap_restart, 'w') as f: + f.write(forecast_date) + + + # Copy and configure gcm_run.j + # ----------------------------- + gcm_run_src = os.path.join(namelists_dir, f'gcm_run_geoscf_{resolution}.j') + gcm_run_dst = os.path.join(scratch_dir, 'gcm_run_geoscf.j') + shutil.copy(gcm_run_src, gcm_run_dst) + self.replace_string(gcm_run_dst, '>>SWELL_CYCLEDIR<<', scratch_dir) + self.replace_string(gcm_run_dst, '>>SWELL_GEOSINSTALL<<', self.geos_cf_install_dir) + + # used in handling Saltwater Restart only + self.replace_string(gcm_run_dst, '>>SWELL_GEOSRUN<<', self.geos_cf_run_dir) + os.chmod(gcm_run_dst, 0o755) + + # Update CAP.rc with forecast length + # ------------------------------------ + fc_days = str(parse_fclen.days).zfill(8) + sub_day_secs = int(parse_fclen.total_seconds()) % 86400 + fc_hh = sub_day_secs // 3600 + fc_mm = (sub_day_secs % 3600) // 60 + fc_ss = sub_day_secs % 60 + fc_len_geoscf = f'{fc_days} {fc_hh:02d}{fc_mm:02d}{fc_ss:02d}' + cap_src = os.path.join(namelists_dir, f'CAP_{resolution}.rc') + cap_dst = os.path.join(scratch_dir, 'CAP.rc') + shutil.copy(cap_src, cap_dst) + self.replace_string(cap_dst, '>>SWELL_FC_LENGTH<<', fc_len_geoscf) + +# -------------------------------------------------------------------------------------------------- diff --git a/src/swell/tasks/run_forecast.py b/src/swell/tasks/run_forecast.py new file mode 100644 index 000000000..3c16b2e89 --- /dev/null +++ b/src/swell/tasks/run_forecast.py @@ -0,0 +1,29 @@ +# (C) Copyright 2021- United States Government as represented by the Administrator of the +# National Aeronautics and Space Administration. All Rights Reserved. +# +# This software is licensed under the terms of the Apache Licence Version 2.0 +# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. + + +# -------------------------------------------------------------------------------------------------- + +import os + +from swell.tasks.base.task_base import taskBase +from swell.utilities.shell_commands import run_subprocess + +# -------------------------------------------------------------------------------------------------- + + +class RunForecast(taskBase): + + def execute(self) -> None: + """Submits the GCM forecast job script via sbatch.""" + + cycle_dir = self.cycle_dir() + gcm_run_script = os.path.join(cycle_dir, 'scratch', 'gcm_run_geoscf.j') + + self.logger.info(f'Submitting forecast job and waiting for completion: {gcm_run_script}') + run_subprocess(self.logger, ['sbatch', '--wait', gcm_run_script]) + +# -------------------------------------------------------------------------------------------------- diff --git a/src/swell/tasks/save_forecast.py b/src/swell/tasks/save_forecast.py index 969b167f9..17a937177 100644 --- a/src/swell/tasks/save_forecast.py +++ b/src/swell/tasks/save_forecast.py @@ -22,11 +22,11 @@ # -------------------------------------------------------------------------------------------------- -class StoreBackground(taskBase): +class SaveForecast(taskBase): def execute(self) -> None: - """Store background files for a given experiment and cycle in R2D2 + """Store forecast files produced by RunForecast task in R2D2 Parameters ---------- @@ -38,106 +38,49 @@ def execute(self) -> None: # --------------------- load_r2d2_credentials(self.logger, self.platform()) - # Current cycle time object - # ------------------------- - current_cycle_dto = dt.strptime(self.cycle_time(), datetime_formats['iso_format']) - - # Get duration into forecast for first background file - # ---------------------------------------------------- - bkg_steps = [] - # Parse config - window_type = self.config.window_type() + # ------------ window_length = self.config.window_length() - background_experiment = self.config.background_experiment() - background_frequency = self.config.background_frequency() - - # Position relative to center of the window where forecast starts - forecast_offset = self.da_window_params.analysis_forecast_window_offset(window_length) - - # Convert to datetime durations - window_length_dur = isodate.parse_duration(window_length) - window_offset_dur = self.da_window_params.window_offset(window_length, dto=True) - forecast_offset_dur = isodate.parse_duration(forecast_offset) - - # Depending on window type get the time of the background - if window_type == "3D": - # Single background at the middle of the window - fcst_length = window_length_dur - forecast_offset_dur - forecast_start_time = current_cycle_dto - fcst_length - elif window_type == "4D": - # Background at the start of the window - fcst_length = window_length_dur - forecast_offset_dur - window_offset_dur - forecast_start_time = current_cycle_dto - window_offset_dur - fcst_length - - # Convert to ISO duration string - fcst_length_iso = isodate.duration_isoformat(fcst_length) - bkg_steps.append(fcst_length_iso) - - # If background is provided though files get all backgrounds - # ---------------------------------------------------------- - if window_type == "4D": - - bkg_freq_dur = isodate.parse_duration(background_frequency) - - # Check for a sensible frequency - if (window_length_dur/bkg_freq_dur) % 2: - self.logger.abort('Window length not divisible by background frequency') - - # Loop over window - start_date = current_cycle_dto - window_offset_dur - final_date = current_cycle_dto + window_offset_dur - - loop_date = start_date + bkg_freq_dur - - while loop_date <= final_date: - duration_in = loop_date - start_date + fcst_length - bkg_steps.append(isodate.duration_isoformat(duration_in)) - loop_date += bkg_freq_dur - - # Loop over background files in the R2D2 config and store - # ------------------------------------------------------- - self.logger.info('Background steps being fetched: '+' '.join(str(e) for e in bkg_steps)) - - # Background dictionary from config - background_dict = self.jedi_rendering.render_interface_model('background') - - # Get r2d2 dictionary - r2d2_dict = self.jedi_rendering.render_interface_model('r2d2') - - # Loop over fc - for fc in r2d2_dict['store']['fc']: - - # Reset target file - target_file_template = os.path.split(background_dict['filename'])[1] - - # Datetime format to use - user_date_format = fc['user_date_format'] - - # Loop over file types - for file_type in fc['file_type']: - - # Replace filetype in target_file_template - target_file_type_template = target_file_template.replace("$(file_type)", file_type) - - # Looop over background steps - for bkg_step in bkg_steps: - - # Set the datetime format for the output files - background_time = forecast_start_time + isodate.parse_duration(bkg_step) - valid_time_str = background_time.strftime(user_date_format) - - # Set the target file name - target_file = target_file_type_template.replace("$(valid_date)", valid_time_str) - target_file = os.path.join(self.cycle_dir(), target_file) - - # Perform the store - store(date=forecast_start_time, - source_file=target_file, - model='geos', - file_type='bkg', - fc_date_rendering='analysis', - step=bkg_step, - resolution=self.config.horizontal_resolution(), - type='fc', - experiment=background_experiment) + forecast_length = self.config.forecast_length() + forecast_output_frequency = self.config.forecast_output_frequency() + expid = self.config.r2d2_experiment_id() + + cycle_dir = self.cycle_dir() + scratch_dir = os.path.join(cycle_dir, 'scratch') + + # Forecast starts at window begin + # -------------------------------- + forecast_start = self.da_window_params.window_begin(window_length, dto=True) + + # Build list of forecast steps at PT1H frequency up to forecast_length + # ---------------------------------------------------------------------- + forecast_length_dur = isodate.parse_duration(forecast_length) + forecast_frequency_dur = isodate.parse_duration(forecast_output_frequency) + + step_dur = forecast_frequency_dur + + while step_dur <= forecast_length_dur: + step = isodate.duration_isoformat(step_dur) + + # CF2.geoscf_jedi.20230809T220000Z.nc4 + file_time = forecast_start + step_dur + fname = f"CF2.geoscf_jedi.{file_time.strftime('%Y%m%dT%H%M%SZ')}.nc4" + source_file = os.path.join(scratch_dir, fname) + if not os.path.isfile(source_file): + self.logger.abort(f'Expected forecast file not found: {source_file}') + + self.logger.info(f'Storing {fname} at step {step}') + + store( + model='geos_cf', + item='forecast', + step=step, + experiment=expid, + resolution=self.config.horizontal_resolution(), + date=forecast_start.strftime('%Y%m%dT%H%M%S%z'), + source_file=source_file, + file_extension='nc', + file_type='bkg', + store_as_symlink=False, + ) + step_dur += forecast_frequency_dur diff --git a/src/swell/tasks/save_restart.py b/src/swell/tasks/save_restart.py index 3b1318e51..97f8eec69 100644 --- a/src/swell/tasks/save_restart.py +++ b/src/swell/tasks/save_restart.py @@ -7,15 +7,15 @@ # -------------------------------------------------------------------------------------------------- -# from datetime import datetime as dt -# import isodate -# import os -# from r2d2 import store +from datetime import datetime as dt +import isodate +import os +from r2d2 import store from swell.tasks.base.task_base import taskBase # from swell.utilities.datetime_util import datetime_formats # from swell.utilities.file_system_operations import copy_to_dst_dir -# from swell.utilities.r2d2 import load_r2d2_credentials +from swell.utilities.r2d2 import load_r2d2_credentials # -------------------------------------------------------------------------------------------------- @@ -25,82 +25,147 @@ class SaveRestart(taskBase): def execute(self): """ - Moving background and increment files to R2D2DataStore - This is a temporary solution until we have a proper v3 data storage - Does not handle 4d backgrounds properly + Store GEOS-CF checkpoint restart files to R2D2 as symlinks or actual files. + Saves checkpoint files that are valid at the beginning of the next DA window so they + can be retrieved by GetRestart in the subsequent cycle. + + For other models skip (old code for the other models can be removed) """ - self.logger.info('Skipping this task as R2D2v3 restart storage is not implemented ' + - 'for coupled models yet') - return - - # Load R2D2 credentials - # --------------------- - load_r2d2_credentials(self.logger, self.platform()) - - # Parse config - window_type = self.config.window_type() - window_length = self.config.window_length() - forecast_duration = self.config.forecast_duration() - self.jedi_rendering.add_key('marine_models', self.config.marine_models(None)) - - # Position relative to center of the window where forecast starts - background_time_offset = self.config.background_time_offset() - forecast_start_time = self.cycle_time_dto() - isodate.parse_duration(background_time_offset) - - # Convert to datetime durations - local_background_time = self.da_window_params.local_background_time(window_length, - window_type) - local_background_time_iso = self.da_window_params.local_background_time_iso(window_length, - window_type) - analysis_time_iso = self.da_window_params.analysis_time_iso() - self.jedi_rendering.add_key('local_background_time', local_background_time) - self.jedi_rendering.add_key('local_background_time_iso', local_background_time_iso) - self.jedi_rendering.add_key('analysis_time_iso', analysis_time_iso) - - # Get r2d2 dictionary - r2d2_dict = self.jedi_rendering.render_interface_model('r2d2') - - # Loop over fc - for fc in r2d2_dict['store']['fc']: - store(date=forecast_start_time, - source_file=fc['filename'], - model='mom6_cice6_UFS', - file_type=fc['file_type'], - fc_date_rendering='analysis', - step=window_length, - resolution=self.config.horizontal_resolution(), - type='fc', - experiment=self.config.r2d2_experiment_id()) - - # Loop over an - for an in r2d2_dict['store']['an']: - store(date=self.cycle_time_dto(), - source_file=an['filename'], - model='mom6_cice6_UFS', - file_type=an['file_type'], - fc_date_rendering='analysis', - resolution=self.config.horizontal_resolution(), - type='an', - experiment=self.config.r2d2_experiment_id()) - - # Oceanstats needs special handling from the forecast folder. It is produced at the end of - # the forecast and could be saved as a good metric. We are replicating the same structure as - # the R2D2 files. - mainf = os.path.join(r2d2_local_path, 'mom6_cice6_UFS', - 'fc', - self.experiment_id(), - 'global', - self.config.horizontal_resolution()) - - dst_date = dt.strftime(forecast_start_time, datetime_formats['iso_format']) - - # Oceanstats is produced at the end of the forecast - src_stats = self.forecast_dir(['scratch', 'ocean.stats.nc']) - dst_stats = os.path.join(mainf, forecast_start_time.strftime('%Y-%m-%d'), - f'mom6_cice6_UFS.{self.experiment_id()}.fc.global.MOM.oceanstats.' - + dst_date + '.' + forecast_duration + '.nc') - - copy_to_dst_dir(self.logger, src_stats, dst_stats) - + model = self.__model__ + if model == 'geos_cf': + + # Load R2D2 credentials + # --------------------- + load_r2d2_credentials(self.logger, self.platform()) + + # Parse config + # ------------ + window_length = self.config.window_length() + expid = self.config.r2d2_experiment_id() + horizontal_resolution = self.config.horizontal_resolution() + + cycle_dir = self.cycle_dir() + scratch_dir = os.path.join(cycle_dir, 'scratch') + + # Window begin for the current cycle + # ------------------------------------ + window_begin = self.da_window_params.window_begin(window_length, dto=True) + + # Checkpoint files are valid at the start of the next window + # ----------------------------------------------------------- + next_window_begin = window_begin + isodate.parse_duration(window_length) + checkpoint_time_str = next_window_begin.strftime('%Y%m%d_%H%Mz') + + rst_file_types = self.config.rst_file_types() + rst_store_interval = self.config.rst_store_interval(None) + + # Determine whether to store as a symlink for this cycle + # -------------------------------------------------------- + store_as_symlink = True + if rst_store_interval is not None: + cycle_duration = isodate.parse_duration(window_length) + elapsed = window_begin - self.start_cycle_point_dto() + cycle_number = round(elapsed / cycle_duration) + 1 + store_as_symlink = (cycle_number % rst_store_interval != 0) + self.logger.info(f'Cycle number: {cycle_number}, rst_store_interval: ' + f'{rst_store_interval}, store_as_symlink: {store_as_symlink}') + + for file_type in rst_file_types: + fname = f'{file_type}_checkpoint.{checkpoint_time_str}.nc4' + source_file = os.path.join(scratch_dir, fname) + + if not os.path.isfile(source_file): + self.logger.abort(f'Expected checkpoint file not found: {source_file}') + + self.logger.info(f'Storing {fname}') + + store( + model=model, + item='forecast', + step=window_length, + experiment=expid, + resolution=horizontal_resolution, + date=window_begin.strftime('%Y%m%dT%H%M%S%z'), + source_file=source_file, + file_extension='nc', + file_type=file_type, + store_as_symlink=store_as_symlink, + ) + + + else: + self.logger.info('Skipping this task as R2D2v3 restart storage is not implemented ' + + 'for coupled models yet') + return + + # Load R2D2 credentials + # --------------------- + load_r2d2_credentials(self.logger, self.platform()) + + # Parse config + window_type = self.config.window_type() + window_length = self.config.window_length() + forecast_duration = self.config.forecast_duration() + self.jedi_rendering.add_key('marine_models', self.config.marine_models(None)) + + # Position relative to center of the window where forecast starts + background_time_offset = self.config.background_time_offset() + forecast_start_time = self.cycle_time_dto() - isodate.parse_duration(background_time_offset) + + # Convert to datetime durations + local_background_time = self.da_window_params.local_background_time(window_length, + window_type) + local_background_time_iso = self.da_window_params.local_background_time_iso(window_length, + window_type) + analysis_time_iso = self.da_window_params.analysis_time_iso() + self.jedi_rendering.add_key('local_background_time', local_background_time) + self.jedi_rendering.add_key('local_background_time_iso', local_background_time_iso) + self.jedi_rendering.add_key('analysis_time_iso', analysis_time_iso) + + # Get r2d2 dictionary + r2d2_dict = self.jedi_rendering.render_interface_model('r2d2') + + # Loop over fc + for fc in r2d2_dict['store']['fc']: + store(date=forecast_start_time, + source_file=fc['filename'], + model='mom6_cice6_UFS', + file_type=fc['file_type'], + fc_date_rendering='analysis', + step=window_length, + resolution=self.config.horizontal_resolution(), + type='fc', + experiment=self.config.r2d2_experiment_id()) + + # Loop over an + for an in r2d2_dict['store']['an']: + store(date=self.cycle_time_dto(), + source_file=an['filename'], + model='mom6_cice6_UFS', + file_type=an['file_type'], + fc_date_rendering='analysis', + resolution=self.config.horizontal_resolution(), + type='an', + experiment=self.config.r2d2_experiment_id()) + + # Oceanstats needs special handling from the forecast folder. It is produced at the end of + # the forecast and could be saved as a good metric. We are replicating the same structure as + # the R2D2 files. + mainf = os.path.join(r2d2_local_path, 'mom6_cice6_UFS', + 'fc', + self.experiment_id(), + 'global', + self.config.horizontal_resolution()) + + dst_date = dt.strftime(forecast_start_time, datetime_formats['iso_format']) + + # Oceanstats is produced at the end of the forecast + src_stats = self.forecast_dir(['scratch', 'ocean.stats.nc']) + dst_stats = os.path.join(mainf, forecast_start_time.strftime('%Y-%m-%d'), + f'mom6_cice6_UFS.{self.experiment_id()}.fc.global.MOM.oceanstats.' + + dst_date + '.' + forecast_duration + '.nc') + + copy_to_dst_dir(self.logger, src_stats, dst_stats) + # -------------------------------------------------------------------------------------------------- diff --git a/src/swell/tasks/task_questions.py b/src/swell/tasks/task_questions.py index 8347850a7..cd6aab0b5 100644 --- a/src/swell/tasks/task_questions.py +++ b/src/swell/tasks/task_questions.py @@ -146,7 +146,8 @@ class TaskQuestions(QuestionContainer, Enum): CleanCycle = QuestionList( list_name="CleanCycle", questions=[ - qd.clean_patterns() + qd.clean_patterns(), + qd.window_length() ] ) @@ -311,6 +312,18 @@ class TaskQuestions(QuestionContainer, Enum): # -------------------------------------------------------------------------------------------------- + GetRestart = QuestionList( + list_name="GetRestart", + questions=[ + window_questions, + qd.rst_experiment(), + qd.rst_file_types(), + qd.horizontal_resolution(), + ] + ) + + # -------------------------------------------------------------------------------------------------- + GetBackgroundGeosExperiment = QuestionList( list_name="GetBackgroundGeosExperiment", questions=[ @@ -551,6 +564,26 @@ class TaskQuestions(QuestionContainer, Enum): # -------------------------------------------------------------------------------------------------- + PrepForecast = QuestionList( + list_name="PrepForecast", + questions=[ + qd.analysis_variables(), + qd.forecast_length(), + qd.forecast_output_frequency(), + qd.geos_cf_install_dir(), + qd.geos_cf_run_dir(), + qd.geosfp_exp(), + qd.geosfp_path(), + qd.horizontal_resolution(), + qd.iau(), + qd.inc_template(), + qd.window_length(), + qd.rst_experiment() + ] + ) + + # -------------------------------------------------------------------------------------------------- + PrepCoupledGeosRunDir = QuestionList( list_name="PrepCoupledGeosRunDir", questions=[ @@ -760,6 +793,8 @@ class TaskQuestions(QuestionContainer, Enum): qd.forecast_duration(), qd.horizontal_resolution(), qd.marine_models(), + qd.rst_file_types(), + qd.rst_store_interval(), ] ) @@ -779,13 +814,13 @@ class TaskQuestions(QuestionContainer, Enum): # -------------------------------------------------------------------------------------------------- - StoreBackground = QuestionList( - list_name="StoreBackground", + SaveForecast = QuestionList( + list_name="SaveForecast", questions=[ - window_questions, - qd.background_experiment(), - qd.background_frequency(), + qd.forecast_length(), + qd.forecast_output_frequency(), qd.horizontal_resolution(), + qd.window_length(), ] ) diff --git a/src/swell/utilities/question_defaults.py b/src/swell/utilities/question_defaults.py index 987f64322..11ef120a1 100644 --- a/src/swell/utilities/question_defaults.py +++ b/src/swell/utilities/question_defaults.py @@ -279,6 +279,48 @@ class background_time_offset(TaskQuestion): widget_type: WType = WType.ISO_DURATION # -------------------------------------------------------------------------------------------------- + + @dataclass + class rst_experiment(TaskQuestion): + default_value: str = "defer_to_model" + question_name: str = "rst_experiment" + ask_question: bool = True + models: List[str] = mutable_field([ + "geos_cf" + ]) + prompt: str = "What is the name of the experiment providing the restart files in R2D2?" + widget_type: WType = WType.STRING + + # -------------------------------------------------------------------------------------------------- + + @dataclass + class rst_file_types(TaskQuestion): + default_value: str = "defer_to_model" + question_name: str = "rst_file_types" + options: str = "defer_to_model" + models: List[str] = mutable_field([ + "geos_cf" + ]) + prompt: str = "What are the restart file types to fetch/store from R2D2?" + widget_type: WType = WType.STRING_CHECK_LIST + + # -------------------------------------------------------------------------------------------------- + + @dataclass + class rst_store_interval(TaskQuestion): + default_value: str = None + question_name: str = "rst_store_interval" + ask_question: bool = True + models: List[str] = mutable_field([ + "geos_cf" + ]) + prompt: str = ("After how many cycles should restart files be stored as real files " + "(not symlinks)? E.g. 28 means every 28th cycle (and multiples) stores " + "real files. Leave unset to always store as symlinks.") + widget_type: WType = WType.INTEGER + + # -------------------------------------------------------------------------------------------------- + @dataclass class bufr_obs_classes(TaskQuestion): default_value: str = "defer_to_model" @@ -553,6 +595,32 @@ class forecast_duration(TaskQuestion): # -------------------------------------------------------------------------------------------------- + @dataclass + class forecast_length(TaskQuestion): + default_value: str = "PT12H" + question_name: str = "forecast_length" + ask_question: bool = True + models: List[str] = mutable_field([ + "geos_cf" + ]) + prompt: str = "Duration of the GEOS-CF forecast (ISO 8601 duration, e.g. PT12H)" + widget_type: WType = WType.ISO_DURATION + + # -------------------------------------------------------------------------------------------------- + + @dataclass + class forecast_output_frequency(TaskQuestion): + default_value: str = "PT1H" + question_name: str = "forecast_output_frequency" + ask_question: bool = True + models: List[str] = mutable_field([ + "geos_cf" + ]) + prompt: str = "Frequency of forecast output files (ISO 8601 duration, e.g. PT1H)" + widget_type: WType = WType.ISO_DURATION + + # -------------------------------------------------------------------------------------------------- + @dataclass class generate_yaml_and_exit(TaskQuestion): default_value: bool = False @@ -616,6 +684,58 @@ class geos_expdir(TaskQuestion): # -------------------------------------------------------------------------------------------------- + @dataclass + class geos_cf_install_dir(TaskQuestion): + default_value: str = "defer_to_platform" + question_name: str = "geos_cf_install_dir" + ask_question: bool = True + models: List[str] = mutable_field([ + "geos_cf" + ]) + prompt: str = "What is the path to the GEOS-CF install directory?" + widget_type: WType = WType.STRING + + # -------------------------------------------------------------------------------------------------- + + @dataclass + class geos_cf_run_dir(TaskQuestion): + default_value: str = "defer_to_platform" + question_name: str = "geos_cf_run_dir" + ask_question: bool = True + models: List[str] = mutable_field([ + "geos_cf" + ]) + prompt: str = "What is the path to the GEOS-CF model run directory?" + widget_type: WType = WType.STRING + + # -------------------------------------------------------------------------------------------------- + + @dataclass + class geosfp_exp(TaskQuestion): + default_value: str = "f5295_fp" + question_name: str = "geosfp_exp" + ask_question: bool = True + models: List[str] = mutable_field([ + "geos_cf" + ]) + prompt: str = "What is the GEOS FP experiment ID used for IAU analysis files?" + widget_type: WType = WType.STRING + + # -------------------------------------------------------------------------------------------------- + + @dataclass + class geosfp_path(TaskQuestion): + default_value: str = "defer_to_platform" + question_name: str = "geosfp_path" + ask_question: bool = True + models: List[str] = mutable_field([ + "geos_cf" + ]) + prompt: str = "What is the path to the GEOS FP archive?" + widget_type: WType = WType.STRING + + # -------------------------------------------------------------------------------------------------- + @dataclass class geos_gcm_tag(TaskQuestion): default_value: str = "v11.6.0" @@ -842,6 +962,36 @@ class ioda_locations_not_in_r2d2(TaskQuestion): # -------------------------------------------------------------------------------------------------- + @dataclass + class iau(TaskQuestion): + default_value: bool = True + question_name: str = "iau" + ask_question: bool = True + options: List[bool] = mutable_field([ + True, + False + ]) + models: List[str] = mutable_field([ + "geos_cf" + ]) + prompt: str = "Use Incremental Analysis Update (IAU) in the GEOS-CF forecast?" + widget_type: WType = WType.BOOLEAN + + # -------------------------------------------------------------------------------------------------- + + @dataclass + class inc_template(TaskQuestion): + default_value: str = "defer_to_platform" + question_name: str = "inc_template" + ask_question: bool = True + models: List[str] = mutable_field([ + "geos_cf" + ]) + prompt: str = "What is the path to the GEOS-CF increment template NetCDF file?" + widget_type: WType = WType.STRING + + # -------------------------------------------------------------------------------------------------- + @dataclass class jedi_build_method(TaskQuestion): default_value: str = "create" @@ -1330,6 +1480,9 @@ class single_observations(TaskQuestion): class swell_static_files(TaskQuestion): default_value: str = "defer_to_platform" question_name: str = "swell_static_files" + models: List[str] = mutable_field([ + "all_models" + ]) prompt: str = "What is the path to the Swell Static files directory?" widget_type: WType = WType.STRING