diff --git a/parm/FV3LAM_wflow.xml b/parm/FV3LAM_wflow.xml
index 14ca173a03..fa3100231c 100644
--- a/parm/FV3LAM_wflow.xml
+++ b/parm/FV3LAM_wflow.xml
@@ -95,15 +95,15 @@ Directories and files.
{%- if run_envir == "nco" %}
-
-
+{{ run }}.@Y@m@d/{{ net }}.t@Hz.{{ ensmem_indx_name }}#{{ ensmem_indx_name }}#.dyn">
+{{ run }}.@Y@m@d/{{ net }}.t@Hz.{{ ensmem_indx_name }}#{{ ensmem_indx_name }}#.phy">
{%- else %}
-
-
+@Y@m@d@H{{ slash_ensmem_subdir }}/dyn">
+@Y@m@d@H{{ slash_ensmem_subdir }}/phy">
{%- endif %}
{%- if run_envir == "nco" %}
-
+@Y@m@d">
{%- else %}
@@ -158,9 +158,9 @@ tasks; and the "FCST" type is used for the RUN_FCST_TN task.
{%- if run_envir == "nco" %}
- &LOGDIR;/FV3LAM_wflow_{{ workflow_id }}.log
+ &LOGDIR;/FV3LAM_wflow_{{ workflow_id }}.log
{%- else %}
- &LOGDIR;/FV3LAM_wflow.log
+ &LOGDIR;/FV3LAM_wflow.log
{%- endif %}
@@ -207,13 +207,13 @@ MODULES_RUN_TASK_FP script.
&SLURM_NATIVE_CMD;
{%- endif %}
&MAKE_GRID_TN;
- &LOGDIR;/&MAKE_GRID_TN;&LOGEXT;
+ &LOGDIR;/&MAKE_GRID_TN;&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
{%- endif %}
@@ -233,13 +233,13 @@ MODULES_RUN_TASK_FP script.
&SLURM_NATIVE_CMD;
{%- endif %}
&MAKE_OROG_TN;
- &LOGDIR;/&MAKE_OROG_TN;&LOGEXT;
+ &LOGDIR;/&MAKE_OROG_TN;&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
@@ -267,13 +267,13 @@ MODULES_RUN_TASK_FP script.
&SLURM_NATIVE_CMD;
{%- endif %}
&MAKE_SFC_CLIMO_TN;
- &LOGDIR;/&MAKE_SFC_CLIMO_TN;&LOGEXT;
+ &LOGDIR;/&MAKE_SFC_CLIMO_TN;&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
@@ -308,13 +308,13 @@ MODULES_RUN_TASK_FP script.
&SLURM_NATIVE_CMD;
{%- endif %}
&GET_EXTRN_ICS_TN;
- &LOGDIR;/&GET_EXTRN_ICS_TN;_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&GET_EXTRN_ICS_TN;_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
ICS_OR_LBCSICS
@@ -335,13 +335,13 @@ MODULES_RUN_TASK_FP script.
&SLURM_NATIVE_CMD;
{%- endif %}
&GET_EXTRN_LBCS_TN;
- &LOGDIR;/&GET_EXTRN_LBCS_TN;_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&GET_EXTRN_LBCS_TN;_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
ICS_OR_LBCSLBCS
@@ -372,13 +372,13 @@ MODULES_RUN_TASK_FP script.
&SLURM_NATIVE_CMD;
{%- endif %}
&MAKE_ICS_TN;{{ uscore_ensmem_name }}
- &LOGDIR;/&MAKE_ICS_TN;{{ uscore_ensmem_name }}_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&MAKE_ICS_TN;{{ uscore_ensmem_name }}_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }}
ENSMEM_INDX#{{ ensmem_indx_name }}#
@@ -421,13 +421,13 @@ MODULES_RUN_TASK_FP script.
&SLURM_NATIVE_CMD;
{%- endif %}
&MAKE_LBCS_TN;{{ uscore_ensmem_name }}
- &LOGDIR;/&MAKE_LBCS_TN;{{ uscore_ensmem_name }}_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&MAKE_LBCS_TN;{{ uscore_ensmem_name }}_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }}
ENSMEM_INDX#{{ ensmem_indx_name }}#
@@ -475,13 +475,13 @@ MODULES_RUN_TASK_FP script.
{%- endif %}
{{ wtime_run_fcst }}
&RUN_FCST_TN;{{ uscore_ensmem_name }}
- &LOGDIR;/&RUN_FCST_TN;{{ uscore_ensmem_name }}_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&RUN_FCST_TN;{{ uscore_ensmem_name }}_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }}
ENSMEM_INDX#{{ ensmem_indx_name }}#
@@ -529,13 +529,13 @@ later below for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr##fmn#
- &LOGDIR;/&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr##fmn#_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr##fmn#_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
fhr#fhr#
fmn#fmn#
SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }}
@@ -551,8 +551,8 @@ names in the dependencies.
- &DYN_DIR;f{{ first_fv3_file_tstr }}.nc
- &PHY_DIR;f{{ first_fv3_file_tstr }}.nc
+ &DYN_DIR;f{{ first_fv3_file_tstr }}.nc
+ &PHY_DIR;f{{ first_fv3_file_tstr }}.nc
@@ -587,13 +587,13 @@ for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr##fmn#
- &LOGDIR;/&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr##fmn#_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr##fmn#_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
fhr#fhr#
fmn#fmn#
SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }}
@@ -603,8 +603,8 @@ for other output times.
- &DYN_DIR;f#fhr#:#fmn#:00.nc
- &PHY_DIR;f#fhr#:#fmn#:00.nc
+ &DYN_DIR;f#fhr#:#fmn#:00.nc
+ &PHY_DIR;f#fhr#:#fmn#:00.nc
@@ -651,17 +651,17 @@ always zero).
{%- endif %}
{%- if sub_hourly_post %}
&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr##fmn#
- &LOGDIR;/&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr##fmn#_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr##fmn#_@Y@m@d@H&LOGEXT;
{%- else %}
&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr#
- &LOGDIR;/&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr#_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr#_@Y@m@d@H&LOGEXT;
{%- endif %}
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
{%- if sub_hourly_post %}
fhr#fhr#
fmn#fmn#
@@ -676,11 +676,11 @@ always zero).
{%- if sub_hourly_post %}
- &DYN_DIR;f#fhr#:#fmn#:00.nc
- &PHY_DIR;f#fhr#:#fmn#:00.nc
+ &DYN_DIR;f#fhr#:#fmn#:00.nc
+ &PHY_DIR;f#fhr#:#fmn#:00.nc
{%- else %}
- &DYN_DIR;f#fhr#.nc
- &PHY_DIR;f#fhr#.nc
+ &DYN_DIR;f#fhr#.nc
+ &PHY_DIR;f#fhr#.nc
{%- endif %}
@@ -722,13 +722,13 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr##fmn#
- &LOGDIR;/&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr##fmn#_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr##fmn#_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
fhr#fhr#
fmn#fmn#
SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }}
@@ -738,8 +738,8 @@ the tag to be identical to the ones above for other output times.
- &DYN_DIR;f#fhr#:#fmn#:00.nc
- &PHY_DIR;f#fhr#:#fmn#:00.nc
+ &DYN_DIR;f#fhr#:#fmn#:00.nc
+ &PHY_DIR;f#fhr#:#fmn#:00.nc
@@ -766,14 +766,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&GET_OBS_CCPA_TN;
- &LOGDIR;/&GET_OBS_CCPA_TN;_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&GET_OBS_CCPA_TN;_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&CCPA_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(0, fcst_len_hrs+1) %}{{ " %02d" % h }}{% endfor %}
ACCUM01
@@ -796,14 +796,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&GET_OBS_MRMS_TN;
- &LOGDIR;/&GET_OBS_MRMS_TN;_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&GET_OBS_MRMS_TN;_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&MRMS_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(0, fcst_len_hrs+1) %}{{ " %02d" % h }}{% endfor %}
SCRIPTSdir&SCRIPTSdir;
VARREFC RETOP
@@ -827,14 +827,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&GET_OBS_NDAS_TN;
- &LOGDIR;/&GET_OBS_NDAS_TN;_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&GET_OBS_NDAS_TN;_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&NDAS_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(0, fcst_len_hrs+1) %}{{ " %02d" % h }}{% endfor %}
@@ -856,14 +856,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_GRIDSTAT_TN;
- &LOGDIR;/&VX_GRIDSTAT_TN;{{ uscore_ensmem_name }}_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_GRIDSTAT_TN;{{ uscore_ensmem_name }}_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&CCPA_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(1, fcst_len_hrs+1) %}{{ " %02d" % h }}{% endfor %}
VARAPCP
ACCUM01
@@ -910,14 +910,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_GRIDSTAT_REFC_TN;
- &LOGDIR;/&VX_GRIDSTAT_REFC_TN;{{ uscore_ensmem_name }}_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_GRIDSTAT_REFC_TN;{{ uscore_ensmem_name }}_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&MRMS_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(1, fcst_len_hrs+1) %}{{ " %02d" % h }}{% endfor %}
VARREFC
{%- if do_ensemble %}
@@ -963,14 +963,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_GRIDSTAT_RETOP_TN;
- &LOGDIR;/&VX_GRIDSTAT_RETOP_TN;{{ uscore_ensmem_name }}_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_GRIDSTAT_RETOP_TN;{{ uscore_ensmem_name }}_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&MRMS_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(1, fcst_len_hrs+1) %}{{ " %02d" % h }}{% endfor %}
VARRETOP
{%- if do_ensemble %}
@@ -1016,14 +1016,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_GRIDSTAT_03h_TN;
- &LOGDIR;/&VX_GRIDSTAT_03h_TN;{{ uscore_ensmem_name }}_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_GRIDSTAT_03h_TN;{{ uscore_ensmem_name }}_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&CCPA_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(3, fcst_len_hrs+1, 3) %}{{ " %02d" % h }}{% endfor %}
VARAPCP
ACCUM03
@@ -1055,14 +1055,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_GRIDSTAT_06h_TN;
- &LOGDIR;/&VX_GRIDSTAT_06h_TN;{{ uscore_ensmem_name }}_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_GRIDSTAT_06h_TN;{{ uscore_ensmem_name }}_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&CCPA_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(6, fcst_len_hrs+1, 6) %}{{ " %02d" % h }}{% endfor %}
VARAPCP
ACCUM06
@@ -1094,14 +1094,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_GRIDSTAT_24h_TN;
- &LOGDIR;/&VX_GRIDSTAT_24h_TN;{{ uscore_ensmem_name }}_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_GRIDSTAT_24h_TN;{{ uscore_ensmem_name }}_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&CCPA_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(24, fcst_len_hrs+1, 24) %}{{ " %02d" % h }}{% endfor %}
VARAPCP
ACCUM24
@@ -1133,14 +1133,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_POINTSTAT_TN;
- &LOGDIR;/&VX_POINTSTAT_TN;{{ uscore_ensmem_name }}_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_POINTSTAT_TN;{{ uscore_ensmem_name }}_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&NDAS_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(0, fcst_len_hrs+1) %}{{ " %02d" % h }}{% endfor %}
{%- if do_ensemble %}
SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }}
@@ -1189,14 +1189,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_ENSGRID_TN;
- &LOGDIR;/&VX_ENSGRID_TN;_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_ENSGRID_TN;_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&CCPA_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(1, fcst_len_hrs+1) %}{{ " %02d" % h }}{% endfor %}
VARAPCP
ACCUM01
@@ -1224,14 +1224,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_ENSGRID_03h_TN;
- &LOGDIR;/&VX_ENSGRID_03h_TN;_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_ENSGRID_03h_TN;_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&CCPA_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(3, fcst_len_hrs+1, 3) %}{{ " %02d" % h }}{% endfor %}
VARAPCP
ACCUM03
@@ -1259,14 +1259,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_ENSGRID_06h_TN;
- &LOGDIR;/&VX_ENSGRID_06h_TN;_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_ENSGRID_06h_TN;_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&CCPA_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(6, fcst_len_hrs+1, 6) %}{{ " %02d" % h }}{% endfor %}
VARAPCP
ACCUM06
@@ -1294,14 +1294,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_ENSGRID_24h_TN;
- &LOGDIR;/&VX_ENSGRID_24h_TN;_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_ENSGRID_24h_TN;_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&CCPA_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(24, fcst_len_hrs+1, 24) %}{{ " %02d" % h }}{% endfor %}
VARAPCP
ACCUM24
@@ -1328,14 +1328,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_ENSGRID_REFC_TN;
- &LOGDIR;/&VX_ENSGRID_REFC_TN;_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_ENSGRID_REFC_TN;_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&MRMS_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(1, fcst_len_hrs+1) %}{{ " %02d" % h }}{% endfor %}
VARREFC
@@ -1361,14 +1361,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_ENSGRID_RETOP_TN;
- &LOGDIR;/&VX_ENSGRID_RETOP_TN;_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_ENSGRID_RETOP_TN;_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&MRMS_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(1, fcst_len_hrs+1) %}{{ " %02d" % h }}{% endfor %}
VARRETOP
@@ -1393,14 +1393,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_ENSGRID_MEAN_TN;
- &LOGDIR;/&VX_ENSGRID_MEAN_TN;_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_ENSGRID_MEAN_TN;_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&CCPA_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(1, fcst_len_hrs+1) %}{{ " %02d" % h }}{% endfor %}
VARAPCP
ACCUM01
@@ -1427,14 +1427,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_ENSGRID_PROB_TN;
- &LOGDIR;/&VX_ENSGRID_PROB_TN;_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_ENSGRID_PROB_TN;_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&CCPA_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(1, fcst_len_hrs+1) %}{{ " %02d" % h }}{% endfor %}
VARAPCP
ACCUM01
@@ -1461,14 +1461,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_ENSGRID_MEAN_03h_TN;
- &LOGDIR;/&VX_ENSGRID_MEAN_03h_TN;_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_ENSGRID_MEAN_03h_TN;_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&CCPA_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(3, fcst_len_hrs+1, 3) %}{{ " %02d" % h }}{% endfor %}
VARAPCP
ACCUM03
@@ -1495,14 +1495,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_ENSGRID_PROB_03h_TN;
- &LOGDIR;/&VX_ENSGRID_PROB_03h_TN;_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_ENSGRID_PROB_03h_TN;_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&CCPA_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(3, fcst_len_hrs+1, 3) %}{{ " %02d" % h }}{% endfor %}
VARAPCP
ACCUM03
@@ -1530,14 +1530,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_ENSGRID_MEAN_06h_TN;
- &LOGDIR;/&VX_ENSGRID_MEAN_06h_TN;_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_ENSGRID_MEAN_06h_TN;_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&CCPA_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(6, fcst_len_hrs+1, 6) %}{{ " %02d" % h }}{% endfor %}
VARAPCP
ACCUM06
@@ -1564,14 +1564,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_ENSGRID_PROB_06h_TN;
- &LOGDIR;/&VX_ENSGRID_PROB_06h_TN;_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_ENSGRID_PROB_06h_TN;_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&CCPA_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(6, fcst_len_hrs+1, 6) %}{{ " %02d" % h }}{% endfor %}
VARAPCP
ACCUM06
@@ -1599,14 +1599,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_ENSGRID_MEAN_24h_TN;
- &LOGDIR;/&VX_ENSGRID_MEAN_24h_TN;_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_ENSGRID_MEAN_24h_TN;_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&CCPA_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(24, fcst_len_hrs+1, 24) %}{{ " %02d" % h }}{% endfor %}
VARAPCP
ACCUM24
@@ -1633,14 +1633,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_ENSGRID_PROB_24h_TN;
- &LOGDIR;/&VX_ENSGRID_PROB_24h_TN;_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_ENSGRID_PROB_24h_TN;_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&CCPA_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(24, fcst_len_hrs+1, 24) %}{{ " %02d" % h }}{% endfor %}
VARAPCP
ACCUM24
@@ -1667,14 +1667,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_ENSGRID_PROB_REFC_TN;
- &LOGDIR;/&VX_ENSGRID_PROB_REFC_TN;_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_ENSGRID_PROB_REFC_TN;_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&MRMS_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(1, fcst_len_hrs+1) %}{{ " %02d" % h }}{% endfor %}
VARREFC
@@ -1700,14 +1700,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_ENSGRID_PROB_RETOP_TN;
- &LOGDIR;/&VX_ENSGRID_PROB_RETOP_TN;_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_ENSGRID_PROB_RETOP_TN;_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&MRMS_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(1, fcst_len_hrs+1) %}{{ " %02d" % h }}{% endfor %}
VARRETOP
@@ -1734,14 +1734,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_ENSPOINT_TN;
- &LOGDIR;/&VX_ENSPOINT_TN;_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_ENSPOINT_TN;_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&NDAS_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(0, fcst_len_hrs+1) %}{{ " %02d" % h }}{% endfor %}
@@ -1765,14 +1765,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_ENSPOINT_MEAN_TN;
- &LOGDIR;/&VX_ENSPOINT_MEAN_TN;_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_ENSPOINT_MEAN_TN;_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&NDAS_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(0, fcst_len_hrs+1) %}{{ " %02d" % h }}{% endfor %}
@@ -1796,14 +1796,14 @@ the tag to be identical to the ones above for other output times.
&SLURM_NATIVE_CMD;
{%- endif %}
&VX_ENSPOINT_PROB_TN;
- &LOGDIR;/&VX_ENSPOINT_PROB_TN;_@Y@m@d@H&LOGEXT;
+ &LOGDIR;/&VX_ENSPOINT_PROB_TN;_@Y@m@d@H&LOGEXT;
GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP;
OBS_DIR&NDAS_OBS_DIR;
PDY@Y@m@d
cyc@H
subcyc@M
- LOGDIR&LOGDIR;
+ LOGDIR&LOGDIR;
FHR {% for h in range(0, fcst_len_hrs+1) %}{{ " %02d" % h }}{% endfor %}
diff --git a/tests/WE2E/get_expts_status.sh b/tests/WE2E/get_expts_status.sh
index f9431bc529..3a05ef4093 100755
--- a/tests/WE2E/get_expts_status.sh
+++ b/tests/WE2E/get_expts_status.sh
@@ -67,6 +67,7 @@ USHdir="$HOMEdir/ush"
#-----------------------------------------------------------------------
#
. $USHdir/source_util_funcs.sh
+source_config $USHdir/constants.yaml
#
#-----------------------------------------------------------------------
#
diff --git a/tests/WE2E/test_configs/wflow_features/config.deactivate_tasks.yaml b/tests/WE2E/test_configs/wflow_features/config.deactivate_tasks.yaml
index a042538861..d2455a1c08 100644
--- a/tests/WE2E/test_configs/wflow_features/config.deactivate_tasks.yaml
+++ b/tests/WE2E/test_configs/wflow_features/config.deactivate_tasks.yaml
@@ -18,10 +18,6 @@ metadata:
three tasks.
user:
RUN_ENVIR: community
-platform:
- RUN_CMD_UTILS: cd $yyyymmdd
- RUN_CMD_FCST: mpirun -np ${PE_MEMBER01}
- RUN_CMD_POST: echo hello $yyyymmdd
workflow:
CCPP_PHYS_SUITE: FV3_GFS_v15p2
DATE_FIRST_CYCL: '20190701'
diff --git a/ush/machine/cheyenne.yaml b/ush/machine/cheyenne.yaml
index cda2924460..184a5f64c9 100644
--- a/ush/machine/cheyenne.yaml
+++ b/ush/machine/cheyenne.yaml
@@ -21,6 +21,8 @@ platform:
PRE_TASK_CMDS: '{ ulimit -s unlimited; ulimit -a; }'
TEST_EXTRN_MDL_SOURCE_BASEDIR: /glade/p/ral/jntp/UFS_SRW_App/develop/input_model_data
TEST_PREGEN_BASEDIR: /glade/p/ral/jntp/UFS_SRW_App/develop/FV3LAM_pregen
+ TEST_ALT_EXTRN_MDL_SYSBASEDIR_ICS: /glade/p/ral/jntp/UFS_SRW_App/develop/dummy_FV3GFS_sys_dir
+ TEST_ALT_EXTRN_MDL_SYSBASEDIR_LBCS: /glade/p/ral/jntp/UFS_SRW_App/develop/dummy_FV3GFS_sys_dir
task_run_fcst:
FIXaer: /glade/p/ral/jntp/UFS_SRW_App/develop/fix/fix_aer
FIXgsm: /glade/p/ral/jntp/UFS_SRW_App/develop/fix/fix_am
diff --git a/ush/machine/gaea.yaml b/ush/machine/gaea.yaml
index b3a69887ae..f6a3c28d2d 100644
--- a/ush/machine/gaea.yaml
+++ b/ush/machine/gaea.yaml
@@ -21,8 +21,8 @@ platform:
PRE_TASK_CMDS: '{ ulimit -s unlimited; ulimit -a; }'
TEST_EXTRN_MDL_SOURCE_BASEDIR: /lustre/f2/pdata/ncep_shared/UFS_SRW_App/develop/input_model_data
TEST_PREGEN_BASEDIR: /lustre/f2/pdata/ncep_shared/UFS_SRW_App/develop/FV3LAM_pregen
-task_make_lbcs:
- WTIME_MAKE_LBCS: 00:60:00
+ TEST_ALT_EXTRN_MDL_SYSBASEDIR_ICS: /lustre/f2/pdata/ncep_shared/UFS_SRW_App/develop/dummy_FV3GFS_sys_dir
+ TEST_ALT_EXTRN_MDL_SYSBASEDIR_LBCS: /lustre/f2/pdata/ncep_shared/UFS_SRW_App/develop/dummy_FV3GFS_sys_dir
task_run_fcst:
FIXaer: /lustre/f2/pdata/ncep_shared/UFS_SRW_App/develop/fix/fix_aer
FIXgsm: /lustre/f2/pdata/ncep_shared/UFS_SRW_App/develop/fix/fix_am
diff --git a/ush/machine/hera.yaml b/ush/machine/hera.yaml
index 33a681ba6a..cb17092f7f 100644
--- a/ush/machine/hera.yaml
+++ b/ush/machine/hera.yaml
@@ -24,6 +24,8 @@ platform:
PRE_TASK_CMDS: '{ ulimit -s unlimited; ulimit -a; }'
TEST_EXTRN_MDL_SOURCE_BASEDIR: /scratch2/BMC/det/UFS_SRW_App/develop/input_model_data
TEST_PREGEN_BASEDIR: /scratch2/BMC/det/UFS_SRW_App/develop/FV3LAM_pregen
+ TEST_ALT_EXTRN_MDL_SYSBASEDIR_ICS: /scratch2/BMC/det/UFS_SRW_app/develop/dummy_FV3GFS_sys_dir
+ TEST_ALT_EXTRN_MDL_SYSBASEDIR_LBCS: /scratch2/BMC/det/UFS_SRW_app/develop/dummy_FV3GFS_sys_dir
task_get_extrn_ics:
EXTRN_MDL_DATA_STORES: hpss aws nomads
task_get_extrn_lbcs:
diff --git a/ush/machine/jet.yaml b/ush/machine/jet.yaml
index d5176843d7..c9ac57fac4 100644
--- a/ush/machine/jet.yaml
+++ b/ush/machine/jet.yaml
@@ -24,6 +24,8 @@ platform:
PRE_TASK_CMDS: '{ ulimit -s unlimited; ulimit -a; }'
TEST_EXTRN_MDL_SOURCE_BASEDIR: /mnt/lfs4/BMC/wrfruc/UFS_SRW_App/develop/input_model_data
TEST_PREGEN_BASEDIR: /mnt/lfs4/BMC/wrfruc/UFS_SRW_App/develop/FV3LAM_pregen
+ TEST_ALT_EXTRN_MDL_SYSBASEDIR_ICS: /mnt/lfs4/BMC/wrfruc/UFS_SRW_App/develop/dummy_FV3GFS_sys_dir
+ TEST_ALT_EXTRN_MDL_SYSBASEDIR_LBCS: /mnt/lfs4/BMC/wrfruc/UFS_SRW_App/develop/dummy_FV3GFS_sys_dir
task_get_extrn_ics:
EXTRN_MDL_DATA_STORES: hpss aws nomads
task_get_extrn_lbcs:
diff --git a/ush/machine/noaacloud.yaml b/ush/machine/noaacloud.yaml
index 019f58426b..306cf7adc0 100644
--- a/ush/machine/noaacloud.yaml
+++ b/ush/machine/noaacloud.yaml
@@ -17,6 +17,9 @@ platform:
PRE_TASK_CMDS: '{ ulimit -s unlimited; ulimit -a; }'
BUILD_MOD_FN: wflow_noaacloud
TEST_EXTRN_MDL_SOURCE_BASEDIR: /contrib/EPIC/UFS_SRW_App/develop/input_model_data
+ TEST_PREGEN_BASEDIR: /contrib/EPIC/UFS_SRW_App/develop/FV3LAM_pregen
+ TEST_ALT_EXTRN_MDL_SYSBASEDIR_ICS: /contrib/EPIC/UFS_SRW_App/develop/dummy_FV3GFS_sys_dir
+ TEST_ALT_EXTRN_MDL_SYSBASEDIR_LBCS: /contrib/EPIC/UFS_SRW_App/develop/dummy_FV3GFS_sys_dir
task_get_extrn_ics:
EXTRN_MDL_DATA_STORES: aws nomads
task_get_extrn_lbcs:
diff --git a/ush/machine/odin.yaml b/ush/machine/odin.yaml
index f3809a950f..6547be3fb0 100644
--- a/ush/machine/odin.yaml
+++ b/ush/machine/odin.yaml
@@ -17,6 +17,8 @@ platform:
PRE_TASK_CMDS: '{ ulimit -s unlimited; ulimit -a; }'
TEST_EXTRN_MDL_SOURCE_BASEDIR: /scratch/ywang/UFS_SRW_App/develop/input_model_data
TEST_PREGEN_BASEDIR: /scratch/ywang/UFS_SRW_App/develop/FV3LAM_pregen
+ TEST_ALT_EXTRN_MDL_SYSBASEDIR_ICS: /scratch/ywang/UFS_SRW_App/develop/dummy_FV3GFS_sys_dir
+ TEST_ALT_EXTRN_MDL_SYSBASEDIR_LBCS: /scratch/ywang/UFS_SRW_App/develop/dummy_FV3GFS_sys_dir
task_run_fcst:
FIXaer: /scratch/ywang/UFS_SRW_App/develop/fix/fix_aer
FIXgsm: /scratch/ywang/UFS_SRW_App/develop/fix/fix_am
diff --git a/ush/machine/stampede.yaml b/ush/machine/stampede.yaml
index d0a3f55ba8..42d31ffc73 100644
--- a/ush/machine/stampede.yaml
+++ b/ush/machine/stampede.yaml
@@ -17,6 +17,8 @@ platform:
PRE_TASK_CMDS: '{ ulimit -s unlimited; ulimit -a; }'
TEST_EXTRN_MDL_SOURCE_BASEDIR: /work2/00315/tg455890/stampede2/UFS_SRW_App/develop/input_model_data
TEST_PREGEN_BASEDIR: /work2/00315/tg455890/stampede2/UFS_SRW_App/develop/FV3LAM_pregen
+ TEST_ALT_EXTRN_MDL_SYSBASEDIR_ICS: /work2/00315/tg455890/stampede2/UFS_SRW_App/develop/dummy_FV3GFS_sys_dir
+ TEST_ALT_EXTRN_MDL_SYSBASEDIR_LBCS: /work2/00315/tg455890/stampede2/UFS_SRW_App/develop/dummy_FV3GFS_sys_dir
task_run_fcst:
FIXaer: /work2/00315/tg455890/stampede2/UFS_SRW_App/develop/fix/fix_aer
FIXgsm: /work2/00315/tg455890/stampede2/UFS_SRW_App/develop/fix/fix_am
diff --git a/ush/setup.py b/ush/setup.py
index c2a2cc8446..bab9d0cc71 100644
--- a/ush/setup.py
+++ b/ush/setup.py
@@ -73,19 +73,21 @@ def setup():
#
# -----------------------------------------------------------------------
#
+ # Step-1 of config
+ # ================
# Set the name of the configuration file containing default values for
- # the experiment/workflow variables. Then source the file.
+ # the experiment/workflow variables. Then load its content.
#
# -----------------------------------------------------------------------
#
EXPT_DEFAULT_CONFIG_FN = "config_defaults.yaml"
cfg_d = load_config_file(os.path.join(USHdir, EXPT_DEFAULT_CONFIG_FN))
- import_vars(dictionary=flatten_dict(cfg_d))
+ EXPT_CONFIG_FN = cfg_d["workflow"]["EXPT_CONFIG_FN"]
#
# -----------------------------------------------------------------------
#
- # If a user-specified configuration file exists, source it. This file
+ # Load the user config file but don't source it yet. This file
# contains user-specified values for a subset of the experiment/workflow
# variables that override their default values. Note that the user-
# specified configuration file is not tracked by the repository, whereas
@@ -94,28 +96,28 @@ def setup():
# -----------------------------------------------------------------------
#
if os.path.exists(EXPT_CONFIG_FN):
- #
- # We require that the variables being set in the user-specified configu-
- # ration file have counterparts in the default configuration file. This
- # is so that we do not introduce new variables in the user-specified
- # configuration file without also officially introducing them in the de-
- # fault configuration file. Thus, before sourcing the user-specified
- # configuration file, we check that all variables in the user-specified
- # configuration file are also assigned default values in the default
- # configuration file.
- #
cfg_u = load_config_file(os.path.join(USHdir, EXPT_CONFIG_FN))
cfg_u = flatten_dict(cfg_u)
- import_vars(dictionary=cfg_u)
- update_dict(cfg_u, cfg_d)
+ import_vars(dictionary=cfg_u,
+ env_vars=["MACHINE",
+ "EXTRN_MDL_NAME_ICS", "EXTRN_MDL_NAME_LBCS",
+ "FV3GFS_FILE_FMT_ICS", "FV3GFS_FILE_FMT_LBCS"])
+ else:
+ print_err_msg_exit(
+ f'''
+ User config file not found
+ EXPT_CONFIG_FN = \"{EXPT_CONFIG_FN}\"'''
+ )
#
# -----------------------------------------------------------------------
#
- # Source machine specific file
+ # Step-2 of config
+ # ================
+ # Source machine specific config file to set default values
#
# -----------------------------------------------------------------------
#
- global MACHINE
+ global MACHINE, EXTRN_MDL_SYSBASEDIR_ICS, EXTRN_MDL_SYSBASEDIR_LBCS
MACHINE_FILE = os.path.join(USHdir, "machine", f"{lowercase(MACHINE)}.yaml")
machine_cfg = load_config_file(MACHINE_FILE)
@@ -130,11 +132,8 @@ def get_location(xcs,fmt):
else:
return ""
- global EXTRN_MDL_SYSBASEDIR_ICS, EXTRN_MDL_SYSBASEDIR_LBCS
- EXTRN_MDL_SYSBASEDIR_ICS = EXTRN_MDL_SYSBASEDIR_ICS or \
- get_location(EXTRN_MDL_NAME_ICS, FV3GFS_FILE_FMT_ICS)
- EXTRN_MDL_SYSBASEDIR_LBCS = EXTRN_MDL_SYSBASEDIR_LBCS or \
- get_location(EXTRN_MDL_NAME_LBCS, FV3GFS_FILE_FMT_LBCS)
+ EXTRN_MDL_SYSBASEDIR_ICS = get_location(EXTRN_MDL_NAME_ICS, FV3GFS_FILE_FMT_ICS)
+ EXTRN_MDL_SYSBASEDIR_LBCS = get_location(EXTRN_MDL_NAME_LBCS, FV3GFS_FILE_FMT_LBCS)
# remove the data key and provide machine specific default values for cfg_d
if "data" in machine_cfg:
@@ -144,10 +143,24 @@ def get_location(xcs,fmt):
"EXTRN_MDL_SYSBASEDIR_LBCS": EXTRN_MDL_SYSBASEDIR_LBCS,
})
machine_cfg = flatten_dict(machine_cfg)
- update_dict(machine_cfg, cfg_d, True)
+ update_dict(machine_cfg, cfg_d)
- # import cfg_d again
+ #
+ # -----------------------------------------------------------------------
+ #
+ # Step-3 of config
+ # ================
+ # Source user config. This overrides previous two configs
+ #
+ # -----------------------------------------------------------------------
+ #
+ update_dict(cfg_u, cfg_d)
+
+ # Now that all 3 config files have their contribution in cfg_d
+ # import its content to python globals()
import_vars(dictionary=flatten_dict(cfg_d))
+
+ # make machine name uppercase
MACHINE = uppercase(MACHINE)
#