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, streamflow_obs_ts, and dc_obs_climo. Different machines also have different partition names, so partition may need to be changed as well.

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

Because we have specified campaign = "water_cycle", some parameters will be automatically set. zppy/templates/water_cycle.cfg specifies what [e3sm_diags] > sets, [e3sm_diags_vs_model] > sets, and [mpas_analysis] > generate should be for the water cycle campaign. Users may specify their own values for any of these parameters, allowing for easy configuration changes. For example, a user could set campaign = "water_cycle" but specify their own value for [e3sm_diags] > sets.

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