From a0b9af0720b4684e1b7f939c3f32991afb4f9bea Mon Sep 17 00:00:00 2001 From: "kate.friedman" Date: Tue, 6 Aug 2024 16:52:19 +0000 Subject: [PATCH] Move IC variables from base to stage config - Move ICSDIR and BASE_IC variables to config.stage_ic - Update workflow/setup_expt.py to fill in templates in config.stage_ic based on user input and host Refs #2475 --- parm/config/gefs/config.base | 2 -- parm/config/gefs/config.stage_ic | 3 +++ parm/config/gfs/config.base | 2 -- parm/config/gfs/config.stage_ic | 3 +++ workflow/setup_expt.py | 13 +++++++++++-- 5 files changed, 17 insertions(+), 6 deletions(-) diff --git a/parm/config/gefs/config.base b/parm/config/gefs/config.base index 282c230194..3aacf62f01 100644 --- a/parm/config/gefs/config.base +++ b/parm/config/gefs/config.base @@ -38,8 +38,6 @@ export FIXugwd=${FIXgfs}/ugwd export PACKAGEROOT="@PACKAGEROOT@" # TODO: set via prod_envir in Ops export COMROOT="@COMROOT@" # TODO: set via prod_envir in Ops export COMINsyn="@COMINsyn@" -export ICSDIR="@ICSDIR@" -export BASE_IC="@BASE_IC@" # USER specific paths export HOMEDIR="@HOMEDIR@" diff --git a/parm/config/gefs/config.stage_ic b/parm/config/gefs/config.stage_ic index 5bbf483a1a..a7c57591d2 100644 --- a/parm/config/gefs/config.stage_ic +++ b/parm/config/gefs/config.stage_ic @@ -7,6 +7,9 @@ echo "BEGIN: config.stage_ic" # Get task specific resources source "${EXPDIR}/config.resources" stage_ic +export ICSDIR="@ICSDIR@" +export BASE_IC="@BASE_IC@" + export STAGE_IC_YAML_TMPL="${PARMgfs}/stage/stage.yaml.j2" # Set ICSDIR diff --git a/parm/config/gfs/config.base b/parm/config/gfs/config.base index fa892bb579..866da30569 100644 --- a/parm/config/gfs/config.base +++ b/parm/config/gfs/config.base @@ -47,8 +47,6 @@ export PACKAGEROOT="@PACKAGEROOT@" # TODO: set via prod_envir in Ops export COMROOT="@COMROOT@" # TODO: set via prod_envir in Ops export COMINsyn="@COMINsyn@" export DMPDIR="@DMPDIR@" -export ICSDIR="@ICSDIR@" -export BASE_IC="@BASE_IC@" # Gempak from external models # Default locations are to dummy locations for testing diff --git a/parm/config/gfs/config.stage_ic b/parm/config/gfs/config.stage_ic index 54f65df7c4..d81bbf3ac6 100644 --- a/parm/config/gfs/config.stage_ic +++ b/parm/config/gfs/config.stage_ic @@ -7,6 +7,9 @@ echo "BEGIN: config.stage_ic" # Get task specific resources source "${EXPDIR}/config.resources" stage_ic +export ICSDIR="@ICSDIR@" +export BASE_IC="@BASE_IC@" + export STAGE_IC_YAML_TMPL="${PARMgfs}/stage/stage.yaml.j2" # Set ICSDIR (if not defined) diff --git a/workflow/setup_expt.py b/workflow/setup_expt.py index 5e9bd1f197..e213394e20 100755 --- a/workflow/setup_expt.py +++ b/workflow/setup_expt.py @@ -65,7 +65,17 @@ def _update_defaults(dict_in: dict) -> dict: # First update config.base edit_baseconfig(host, inputs, yaml_dict) - # loop over other configs and update them + # Update stage config + stage_dict = { + "@ICSDIR@": inputs.icsdir + } + host_dict = get_template_dict(host.info) + stage_dict = dict(stage_dict, **host_dict) + stage_input = f'{inputs.configdir}/config.stage_ic' + stage_output = f'{inputs.expdir}/{inputs.pslot}/config.stage_ic' + edit_config(stage_input, stage_output, stage_dict) + + # Loop over other configs and update them with defaults for cfg in yaml_dict.keys(): if cfg == 'base': continue @@ -104,7 +114,6 @@ def edit_baseconfig(host, inputs, yaml_dict): "@OCNRES@": f"{int(100.*inputs.resdetocean):03d}", "@EXPDIR@": inputs.expdir, "@COMROOT@": inputs.comroot, - "@ICSDIR@": inputs.icsdir, "@EXP_WARM_START@": is_warm_start, "@MODE@": inputs.mode, "@gfs_cyc@": inputs.gfs_cyc,