Skip to content

Commit

Permalink
Add JEDI atmosphere only CI (#2357)
Browse files Browse the repository at this point in the history
The PR contains a minimal set of changes to enable JEDI atmospheric DA
CI testing. Prototype JEDI atmospheric cycling has begun. The JEDI
atmosphere DA CI case provides an automated way to see if future PRs
impact JEDI atmospheric cycling.

Resolves #2294
Dependency: GDASApp PR
[#937](NOAA-EMC/GDASApp#937)
  • Loading branch information
RussTreadon-NOAA authored Mar 12, 2024
1 parent b96f5eb commit ccb1f52
Show file tree
Hide file tree
Showing 11 changed files with 35 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,13 @@ experiment:
arguments:
pslot: {{ 'pslot' | getenv }}
app: ATM
resdetatmos: 48
resdetatmos: 96
resensatmos: 48
comroot: {{ 'RUNTESTS' | getenv }}/COMROOT
expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR
idate: 2021032312
edate: 2021032400
icsdir: {{ 'ICSDIR_ROOT' | getenv }}/C96C48
idate: 2024022318
edate: 2024022400
nens: 2
gfs_cyc: 1
start: warm
Expand Down
8 changes: 4 additions & 4 deletions ci/cases/yamls/ufs_hybatmDA_defaults.ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ base:
DO_JEDIATMENS: "YES"
ACCOUNT: {{ 'SLURM_ACCOUNT' | getenv }}
atmanl:
LAYOUT_X_ATMANL: 1
LAYOUT_Y_ATMANL: 1
LAYOUT_X_ATMANL: 4
LAYOUT_Y_ATMANL: 4
atmensanl:
LAYOUT_X_ATMENSANL: 1
LAYOUT_Y_ATMENSANL: 1
LAYOUT_X_ATMENSANL: 4
LAYOUT_Y_ATMENSANL: 4
esfc:
DONST: "NO"
nsst:
Expand Down
14 changes: 9 additions & 5 deletions parm/config/gfs/config.atmanl
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,16 @@

echo "BEGIN: config.atmanl"

export CASE_ANL=${CASE}
export OBS_YAML_DIR=${HOMEgfs}/sorc/gdas.cd/parm/atm/obs/config/
export OBS_LIST=${HOMEgfs}/sorc/gdas.cd/parm/atm/obs/lists/gdas_prototype_3d.yaml
export ATMVARYAML=${HOMEgfs}/sorc/gdas.cd/parm/atm/variational/3dvar_drpcg.yaml
if [[ ${DOHYBVAR} = "YES" ]]; then
# shellcheck disable=SC2153
export CASE_ANL=${CASE_ENS}
else
export CASE_ANL=${CASE}
fi
export OBS_LIST="${PARMgfs}/gdas/atm/obs/lists/gdas_prototype_3d.yaml.j2"
export JEDIYAML="${PARMgfs}/gdas/atm/variational/3dvar_drpcg.yaml.j2"
export STATICB_TYPE="gsibec"
export BERROR_YAML=${HOMEgfs}/sorc/gdas.cd/parm/atm/berror/staticb_${STATICB_TYPE}.yaml
export BERROR_YAML="${PARMgfs}/gdas/atm/berror/hybvar_${STATICB_TYPE}.yaml.j2"
export INTERP_METHOD='barycentric'

export layout_x_atmanl=@LAYOUT_X_ATMANL@
Expand Down
1 change: 1 addition & 0 deletions parm/config/gfs/config.atmanlinit
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@ echo "BEGIN: config.atmanlinit"

# Get task specific resources
. "${EXPDIR}/config.resources" atmanlinit

echo "END: config.atmanlinit"
5 changes: 2 additions & 3 deletions parm/config/gfs/config.atmensanl
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,8 @@

echo "BEGIN: config.atmensanl"

export OBS_YAML_DIR=${HOMEgfs}/sorc/gdas.cd/parm/atm/obs/config/
export OBS_LIST=${HOMEgfs}/sorc/gdas.cd/parm/atm/obs/lists/lgetkf_prototype.yaml
export ATMENSYAML=${HOMEgfs}/sorc/gdas.cd/parm/atm/lgetkf/lgetkf.yaml
export OBS_LIST="${PARMgfs}/gdas/atm/obs/lists/lgetkf_prototype.yaml.j2"
export JEDIYAML="${PARMgfs}/gdas/atm/lgetkf/lgetkf.yaml.j2"
export INTERP_METHOD='barycentric'

export layout_x_atmensanl=@LAYOUT_X_ATMENSANL@
Expand Down
1 change: 1 addition & 0 deletions parm/config/gfs/config.atmensanlinit
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@ echo "BEGIN: config.atmensanlinit"

# Get task specific resources
. "${EXPDIR}/config.resources" atmensanlinit

echo "END: config.atmensanlinit"
10 changes: 5 additions & 5 deletions parm/gdas/atm_jedi_fix.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
mkdir:
- $(DATA)/fv3jedi
- '{{ DATA }}/fv3jedi'
copy:
- [$(FIXgfs)/gdas/fv3jedi/fv3files/akbk$(npz).nc4, $(DATA)/fv3jedi/akbk.nc4]
- [$(FIXgfs)/gdas/fv3jedi/fv3files/fmsmpp.nml, $(DATA)/fv3jedi/fmsmpp.nml]
- [$(FIXgfs)/gdas/fv3jedi/fv3files/field_table_gfdl, $(DATA)/fv3jedi/field_table]
- [$(HOMEgfs)/sorc/gdas.cd/parm/io/fv3jedi_fieldmetadata_restart.yaml, $(DATA)/fv3jedi/fv3jedi_fieldmetadata_restart.yaml]
- ['{{ FIXgfs }}/gdas/fv3jedi/fv3files/akbk{{ npz }}.nc4', '{{ DATA }}/fv3jedi/akbk.nc4']
- ['{{ FIXgfs }}/gdas/fv3jedi/fv3files/fmsmpp.nml', '{{ DATA }}/fv3jedi/fmsmpp.nml']
- ['{{ FIXgfs }}/gdas/fv3jedi/fv3files/field_table_gfdl', '{{ DATA }}/fv3jedi/field_table']
- ['{{ PARMgfs }}/gdas/io/fv3jedi_fieldmetadata_restart.yaml', '{{ DATA }}/fv3jedi/fv3jedi_fieldmetadata_restart.yaml']
2 changes: 1 addition & 1 deletion sorc/gdas.cd
Submodule gdas.cd updated 122 files
4 changes: 2 additions & 2 deletions ush/python/pygfs/task/atm_analysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
FileHandler,
add_to_datetime, to_fv3time, to_timedelta, to_YMDH,
chdir,
parse_yamltmpl, parse_j2yaml, save_as_yaml,
parse_j2yaml, save_as_yaml,
logit,
Executable,
WorkflowException)
Expand Down Expand Up @@ -103,7 +103,7 @@ def initialize(self: Analysis) -> None:

# generate variational YAML file
logger.debug(f"Generate variational YAML file: {self.task_config.fv3jedi_yaml}")
varda_yaml = parse_j2yaml(self.task_config.ATMVARYAML, self.task_config)
varda_yaml = parse_j2yaml(self.task_config.JEDIYAML, self.task_config, searchpath=self.gdasapp_j2tmpl_dir)
save_as_yaml(varda_yaml, self.task_config.fv3jedi_yaml)
logger.info(f"Wrote variational YAML to: {self.task_config.fv3jedi_yaml}")

Expand Down
4 changes: 2 additions & 2 deletions ush/python/pygfs/task/atmens_analysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
FileHandler,
add_to_datetime, to_fv3time, to_timedelta, to_YMDH, to_YMD,
chdir,
parse_yamltmpl, parse_j2yaml, save_as_yaml,
parse_j2yaml, save_as_yaml,
logit,
Executable,
WorkflowException,
Expand Down Expand Up @@ -119,7 +119,7 @@ def initialize(self: Analysis) -> None:

# generate ensemble da YAML file
logger.debug(f"Generate ensemble da YAML file: {self.task_config.fv3jedi_yaml}")
ensda_yaml = parse_j2yaml(self.task_config.ATMENSYAML, self.task_config)
ensda_yaml = parse_j2yaml(self.task_config.JEDIYAML, self.task_config, searchpath=self.gdasapp_j2tmpl_dir)
save_as_yaml(ensda_yaml, self.task_config.fv3jedi_yaml)
logger.info(f"Wrote ensemble da YAML to: {self.task_config.fv3jedi_yaml}")

Expand Down
4 changes: 4 additions & 0 deletions workflow/applications/applications.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,10 @@ def _source_configs(self, conf: Configuration) -> Dict[str, Any]:
files += ['config.anal', 'config.eupd']
elif config in ['efcs']:
files += ['config.fcst', 'config.efcs']
elif config in ['atmanlinit', 'atmanlrun']:
files += ['config.atmanl', f'config.{config}']
elif config in ['atmensanlinit', 'atmensanlrun']:
files += ['config.atmensanl', f'config.{config}']
elif 'wave' in config:
files += ['config.wave', f'config.{config}']
else:
Expand Down

0 comments on commit ccb1f52

Please sign in to comment.