Tutorial

These examples are for use on LCRC machines (e.g., Chrysalis). Some parameters must be changed for use on other machines. These include the paths for input, output, www, mapping_file, reference_data_path, obs_ts, and dc_obs_climo. Different machines also have different partition names, so partition may need to be changed as well. environment_commands must also be updated between machines – see “Activate e3sm_unified environment”.

Example 1

Let’s say we want to post-process 100 years of an existing simulation.

Copy and paste the following into post.mysimulation.cfg

  1[default]
  2input = <input>
  3input_subdir = archive/atm/hist
  4output = <output>
  5case = 20210122.v2_test01.piControl.ne30pg2_EC30to60E2r2-1900_ICG.chrysalis
  6www = <www>
  7environment_commands = "source /lcrc/soft/climate/e3sm-unified/load_latest_e3sm_unified_chrysalis.sh"
  8partition = compute
  9
 10# Regridded atmosphere climatologies every 20 and 50 years
 11[climo]
 12active = True
 13years = "1:100:20", "1:100:50",
 14# Use default vars
 15
 16  # Monthly climatology
 17  [[ atm_monthly_180x360_aave ]]
 18  mapping_file = /home/ac.zender/data/maps/map_ne30pg2_to_cmip6_180x360_aave.20200201.nc
 19  frequency = "monthly"
 20
 21  # Diurnal climatology (specifically, 3-hour increments of a day averaged over every day of a month)
 22  [[ atm_monthly_diurnal_8xdaily_180x360_aave ]]
 23  input_subdir = "archive/atm/hist"
 24  input_files = "eam.h4"
 25  mapping_file = /home/ac.zender/data/maps/map_ne30pg2_to_cmip6_180x360_aave.20200201.nc
 26  vars = "PRECT"
 27  frequency = "monthly_diurnal_8xdaily"
 28
 29# Regridded atmosphere monthly time series files in 10 year chunks
 30[ts]
 31active = True
 32years = "1:100:10",
 33
 34  # Monthly time series
 35  [[ atm_monthly_180x360_aave ]]
 36  input_subdir = "archive/atm/hist"
 37  input_files = "eam.h0"
 38  frequency = "monthly"
 39  mapping_file = /home/ac.zender/data/maps/map_ne30pg2_to_cmip6_180x360_aave.20200201.nc
 40  # Use default vars
 41
 42  # Daily time series
 43  [[ atm_daily_180x360_aave ]]
 44  input_subdir = "archive/atm/hist"
 45  input_files = "eam.h1"
 46  frequency = "daily"
 47  mapping_file = /home/ac.zender/data/maps/map_ne30pg2_to_cmip6_180x360_aave.20200201.nc
 48  vars = "PRECT"
 49
 50  # Monthly global time series
 51  [[ atm_monthly_glb ]]
 52  input_subdir = "archive/atm/hist"
 53  input_files = "eam.h0"
 54  frequency = "monthly"
 55  mapping_file = "glb"
 56  # Use default vars
 57
 58  # Monthly land time series
 59  [[ land_monthly ]]
 60  input_subdir = "archive/lnd/hist"
 61  input_files = "elm.h0"
 62  frequency = "monthly"
 63  mapping_file = /home/ac.zender/data/maps/map_ne30pg2_to_cmip6_180x360_aave.20200201.nc
 64  vars = "FSH,RH2M"
 65
 66# E3SM Diags every 20 and 50 years
 67[e3sm_diags]
 68active = True
 69years = "1:100:20", "1:100:50",
 70ts_num_years = 10
 71
 72  # Monthly diagnostics
 73  [[ atm_monthly_180x360_aave ]]
 74  short_name = '20210122.v2_test01.piControl.ne30pg2_EC30to60E2r2-1900_ICG.chrysalis'
 75  grid = '180x360_aave'
 76  reference_data_path = '/lcrc/soft/climate/e3sm_diags_data/obs_for_e3sm_diags/climatology'
 77  # These two lines need to be included if sets requiring time series files are being run.
 78  obs_ts = '/lcrc/soft/climate/e3sm_diags_data/obs_for_e3sm_diags/time-series'
 79  ref_start_yr = 1979
 80  # This needs to be set for QBO Diags
 81  ref_final_yr = 2016
 82  # These two lines need to be included if diurnal cycle diagnostics are being run.
 83  dc_obs_climo = '/lcrc/group/e3sm/public_html/e3sm_diags_test_data/unit_test_complete_run/obs/climatology'
 84  climo_diurnal_subsection = "atm_monthly_diurnal_8xdaily_180x360_aave"
 85
 86[e3sm_diags_vs_model]
 87active = False
 88
 89[amwg]
 90active = False
 91
 92# MPAS-Analysis
 93[mpas_analysis]
 94active = True
 95walltime = "24:00:00"
 96parallelTaskCount = 6
 97ts_years = "1-50", "1-100",
 98enso_years = "11-50", "11-100",
 99climo_years = "21-50", "51-100",
100mesh = "EC30to60E2r2"
101
102# Global time series plots
103[global_time_series]
104active = True
105years = "1-100",
106ts_num_years = 10
107figstr=coupled_v2_test01
108moc_file=mocTimeSeries_0001-0100.nc
109experiment_name=20210122.v2_test01.piControl.chrysalis
110ts_years = "1-50", "1-100",
111climo_years = "21-50", "51-100",

Now we can run zppy -c post.mysimulation.cfg.

The [climo] subsections ([[ atm_monthly_180x360_aave ]] and [[ atm_monthly_diurnal_8xdaily_180x360_aave ]]), the [ts] subsections ([[ atm_monthly_180x360_aave ]], [[ atm_daily_180x360_aave ]], [[ atm_monthly_glb ]] and [[ land_monthly ]]), and the [mpas_analysis] section will run first because they have no dependencies.

Once the [climo] subsections and the [ts] subsection [[ atm_monthly_180x360_aave ]] finish, [e3sm_diags] will run.

Once the [ts] subsection [[ atm_monthly_glb ]] and the [mpas_analysis] section finish, [global_time_series] will run.

Post-processing results will be located in output and www. Some machines have a web server. www should be pointed to that so that E3SM Diags, MPAS-Analysis, and the global time series plots will be visible online.

Example 2

This is another example of a configuration file, this time using a RRM simulation.

 1[default]
 2input = <input>
 3input_subdir = archive/atm/hist
 4output = <output>
 5case = 20210603.v2rc3c.piControl.northamericax4v1pg2_WC14to60E2r3.chrysalis
 6www = <www>
 7environment_commands = "source /lcrc/soft/climate/e3sm-unified/load_latest_e3sm_unified_chrysalis.sh"
 8partition = debug
 9
10[climo]
11active = True
12years = "1:60:20",
13
14  [[atm_monthly_180x360_aave]]
15  mapping_file = /home/ac.zender/data/maps/map_northamericax4v1pg2_to_cmip6_180x360_aave.20200401.nc
16
17  [[conus_0.23x0.31_aave]]
18  grid = 'conus_0.23x0.31_aave'
19  mapping_file = /home/ac.zender/data/maps/map_northamericax4v1pg2_to_conus_0.23x0.31_nco.20210301.nc
20
21[ts]
22active = True
23years = "1:60:10",
24mapping_file = /home/ac.zender/data/maps/map_northamericax4v1pg2_to_cmip6_180x360_aave.20200401.nc
25
26  [[ atm_monthly_180x360_aave ]]
27  input_subdir = "archive/atm/hist"
28  input_files = "eam.h0"
29  vars = "FSNTOA,FLUT,FSNT,FLNT,FSNS,FLNS,SHFLX,QFLX,TAUX,TAUY,PRECC,PRECL,PRECSC,PRECSL,TS,TREFHT,CLDTOT,CLDHGH,CLDMED,CLDLOW,U"
30
31  [[ atm_monthly_glb ]]
32  input_subdir = "archive/atm/hist"
33  input_files = "eam.h0"
34  mapping_file = "glb"
35  vars = "FSNTOA,FLUT,FSNT,FLNT,FSNS,FLNS,SHFLX,QFLX,TAUX,TAUY,PRECC,PRECL,PRECSC,PRECSL,TS,TREFHT,CLDTOT,CLDHGH,CLDMED,CLDLOW"
36
37  [[ land_monthly ]]
38  input_subdir = "archive/lnd/hist"
39  input_files = "elm.h0"
40  frequency = "monthly"
41  vars = "FSH,RH2M"
42
43[e3sm_diags]
44active = True
45reference_data_path = '/lcrc/soft/climate/e3sm_diags_data/obs_for_e3sm_diags/climatology'
46output_format_subplot = "pdf",
47short_name = '20210603.v2rc3c.piControl.naRRM'
48years = "1:60:20",
49
50  [[atm_monthly_180x360_aave]]
51  grid = '180x360_aave'
52  sets = "lat_lon","zonal_mean_xy","zonal_mean_2d","polar","cosp_histogram","meridional_mean_2d","enso_diags","qbo","area_mean_time_series",
53  ts_num_years = 10
54  obs_ts = '/lcrc/soft/climate/e3sm_diags_data/obs_for_e3sm_diags/time-series'
55  ref_start_yr = 1990
56  ref_end_yr = 1999
57  ref_final_yr = 2016
58
59  [[conus_0.23x0.31_aave]]
60  grid = 'conus_0.23x0.31_aave'
61  sets = 'lat_lon',
62  cfg = "e3sm_diags/lat_lon_conus.cfg"
63
64[e3sm_diags_vs_model]
65active = False
66
67[mpas_analysis]
68active = False
69walltime = "24:00:00"
70parallelTaskCount = 6
71ts_years = "1-50",
72enso_years = "1-50",
73climo_years ="1-50",
74mesh = "WC14to60E2r3"
75partition = compute
76
77[amwg]
78active = False
79
80[global_time_series]
81active = False