upp_assets

Structured YAML to configure the UPP post-processor is validated by JSON Schema and requires the upp_assets: block, described below. This driver provisions required assets for UPP under the assumption that it will be executed by another process.

  • This driver receives a cycle argument, which it makes available as a Python datetime object to Jinja2 when realizing its input config. This supports specification of cycle-specific values. For example, the key-value pair

    gfs.t{{ cycle.strftime('%H') }}z.atmanl.nc: /some/path/{{ cycle.strftime('%Y%m%d%H') }}/gfs.t{{ cycle.strftime('%H') }}z.atmanl.nc
    

    would be rendered as

    gfs.t18z.atmanl.nc: /some/path/2024021218/gfs.t18z.atmanl.nc
    

    for cycle 2024-02-12T18.

  • This driver receives a leadtime argument, which it makes available as a Python timedelta object to Jinja2 when realizing its input config. This supports specification of leadtime-specific values. For example, the key-value pairs

    datestr: "{{ (cycle + leadtime).strftime('%Y-%m-%d_%H:%M:%S') }}"
    suffix: f{{ '%03d' % (leadtime.total_seconds() / 3600) }}
    

    would be rendered as

    datestr: 2024-05-09_06:00:00
    suffix: f018
    

    for cycle 2024-05-08T12 and leadtime 18.

Here is a prototype UW YAML upp_assets: block, explained in detail below:

upp_assets:
  control_file: /path/to/postxconfig-NT.txt
  files_to_link:
    eta_micro_lookup.dat: /path/to/nam_micro_lookup.dat
    params_grib2_tbl_new: /path/to/params_grib2_tbl_new
  namelist:
    base_file: /path/to/base.nml
    update_values:
      model_inputs:
        datestr: "{{ (cycle + leadtime).strftime('%Y-%m-%d_%H:%M:%S') }}"
        filename: /path/to/dynf{{ '%03d' % (leadtime.total_seconds() / 3600) }}.nc
        filenameflux: /path/to/phyf{{ '%03d' % (leadtime.total_seconds() / 3600) }}.nc
        grib: grib2
        ioform: netcdf
        modelname: FV3R
        submodelname: RTMA
      nampgb:
        kpo: 3
        numx: 1
        po:
          - 1000
          - 100
          - 1
    validate: true
  rundir: /path/to/run/dir

UW YAML for the upp_assets: Block

files_to_copy:

See this page for details.

namelist:

Supports base_file: and update_values: blocks (see Updating Values for details).

The following namelists and variables can be customized:

Namelist

Variables

model_inputs

datestr, filename, filenameflat, filenameflux, grib, ioform, modelname, submodelname

nampgb

aqf_on, d2d_chem, d3d_on, filenameaer, gccpp_on, gocart_on, gtg_on, hyb_sigp, kpo, kpv, kth, method_blsn, nasa_on, numx, po, popascal, pv, rdaod, slrutah_on, th, vtimeunits, write_ifi_debug_files

Read more on the UPP namelists, including variable meanings and appropriate values, here.

Before the namelist file is written, its proposed content will be validated against the appropriate schema. This can be suppressed by setting validate: false in the UW YAML configuration block for the namelist.

rundir:

The path to the run directory.