enkf
Structured YAML to run EnKF is validated by JSON Schema and requires the enkf: block, described below. If enkf is to be run via a batch system, the platform: block, described here, is also required.
This driver receives a
cycleargument, which it makes available as a Pythondatetimeobject to Jinja2 when realizing its input config. This supports specification of cycle-specific values. For example, the key-value pairgfs.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.
Here is a prototype UW YAML enkf: block, explained in detail below:
enkf:
execution:
batchargs:
walltime: "00:50:00"
cores: 120
exclusive: true
envcmds:
- module use /some/path/to/modulefiles
- module load some_module
- ulimit -s unlimited
executable: /path/to/enkf.x
mpicmd: srun
stacksize: 300M
threads: 1
background_files:
ensemble_size: 80
files:
fv3sar_tile1_{{ '%03d' % member }}_dynvars: "/path/to/previous/fv3_{{ '%03d' % member }}/RESTART/fv_core.res.tile1.nc"
fv3sar_tile1_{{ '%03d' % member }}_tracer: "/path/to/previous/fv3_{{ '%03d' % member }}/RESTART/fv_tracer.res.tile1.nc"
fv3sar_tile1_{{ '%03d' % member }}_sfcdata: "/path/to/previous/fv3_{{ '%03d' % member }}/RESTART/sfc_data.nc"
fv3sar_tile1_{{ '%03d' % member }}_phyvar: "/path/to/previous/fv3_{{ '%03d' % member }}/RESTART/phy_data.nc"
files_to_copy:
anavinfo: "{{ user.gsi_fixdir }}/anavinfo.rrfs_conv_dbz"
satinfo: "{{ user.gsi_fixdir }}/global_satinfo.txt"
convinfo: "{{ user.gsi_fixdir }}/convinfo.rrfs"
ozinfo: "{{ user.gsi_fixdir }}/global_ozinfo.txt"
files_to_link:
fv3_coupler.res: "{{ user.gsi_fixdir }}/RRFS_CONUS_13km/fv3_coupler.res"
fv3_akbk: "{{ user.gsi_fixdir }}/RRFS_CONUS_13km/fv3_akbk"
fv3_grid_spec: "{{ user.gsi_fixdir }}/RRFS_CONUS_13km/fv3_grid_spec"
<diagfiles>: !glob "{{ observer.rundir }}/diag*"
namelist:
base_file: /path/to/a/run-ready/enkf.nml
rundir: /path/to/run/dir
platform:
scheduler: slurm
account: wrfruc
user:
gsi_fixdir: /path/to/gsi/fix/files
UW YAML for the enkf: Block
background_files:
ensemble_size:
The integer size of the expected ensemble.
files:
A File Block describing the background ensemble files. The member variable will be made available to Jinja2 expressions used in this block.
execution:
See this page for details.
files_to_copy:
See this page for details.
files_to_hardlink:
Identical to files_to_copy: except that hard links will be created in the run directory instead of copies, when possible. Otherwise a copy will be created.
files_to_link:
Identical to files_to_copy: except that symbolic links will be created in the run directory instead of copies.
namelist:
Supports base_file: and update_values: blocks (see Updating Values for details).
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.