diff --git a/scripts/exregional_make_ics.sh b/scripts/exregional_make_ics.sh
index e18455590..7a991bd9b 100755
--- a/scripts/exregional_make_ics.sh
+++ b/scripts/exregional_make_ics.sh
@@ -171,6 +171,7 @@ case "${CCPP_PHYS_SUITE}" in
elif [ "${EXTRN_MDL_NAME_ICS}" = "NAM" ] || \
[ "${EXTRN_MDL_NAME_ICS}" = "FV3GFS" ] || \
[ "${EXTRN_MDL_NAME_ICS}" = "GEFS" ] || \
+ [ "${EXTRN_MDL_NAME_ICS}" = "GDASENKF" ] || \
[ "${EXTRN_MDL_NAME_ICS}" = "GSMGFS" ]; then
varmap_file="GFSphys_var_map.txt"
fi
@@ -429,6 +430,22 @@ case "${EXTRN_MDL_NAME_ICS}" in
tg3_from_soil=True
;;
+"GDASENKF")
+ tracers_input="[\"spfh\",\"clwmr\",\"o3mr\",\"icmr\",\"rwmr\",\"snmr\",\"grle\"]"
+ tracers="[\"sphum\",\"liq_wat\",\"o3mr\",\"ice_wat\",\"rainwat\",\"snowwat\",\"graupel\"]"
+ external_model="GFS"
+ input_type="gaussian_netcdf"
+ convert_nst=False
+ fn_atm_nemsio="${EXTRN_MDL_FNS[0]}"
+ fn_sfc_nemsio="${EXTRN_MDL_FNS[1]}"
+ vgtyp_from_climo=True
+ sotyp_from_climo=True
+ vgfrc_from_climo=True
+ minmax_vgfrc_from_climo=True
+ lai_from_climo=True
+ tg3_from_soil=True
+ ;;
+
"GEFS")
external_model="GFS"
fn_grib2="${EXTRN_MDL_FNS[0]}"
diff --git a/scripts/exregional_make_lbcs.sh b/scripts/exregional_make_lbcs.sh
index 711263466..8a71cca66 100755
--- a/scripts/exregional_make_lbcs.sh
+++ b/scripts/exregional_make_lbcs.sh
@@ -170,6 +170,7 @@ case "${CCPP_PHYS_SUITE}" in
elif [ "${EXTRN_MDL_NAME_LBCS}" = "NAM" ] || \
[ "${EXTRN_MDL_NAME_LBCS}" = "FV3GFS" ] || \
[ "${EXTRN_MDL_NAME_LBCS}" = "GEFS" ] || \
+ [ "${EXTRN_MDL_NAME_LBCS}" = "GDASENKF" ] || \
[ "${EXTRN_MDL_NAME_LBCS}" = "GSMGFS" ]; then
varmap_file="GFSphys_var_map.txt"
fi
@@ -333,6 +334,15 @@ case "${EXTRN_MDL_NAME_LBCS}" in
fi
;;
+"GDASENKF")
+ tracers_input="[\"spfh\",\"clwmr\",\"o3mr\",\"icmr\",\"rwmr\",\"snmr\",\"grle\"]"
+ tracers="[\"sphum\",\"liq_wat\",\"o3mr\",\"ice_wat\",\"rainwat\",\"snowwat\",\"graupel\"]"
+ external_model="GFS"
+ input_type="gaussian_netcdf"
+ fn_atm_nemsio="${EXTRN_MDL_FNS[0]}"
+ fn_sfc_nemsio="${EXTRN_MDL_FNS[1]}"
+ ;;
+
"GEFS")
external_model="GFS"
fn_grib2="${EXTRN_MDL_FNS[0]}"
@@ -412,6 +422,10 @@ for (( i=0; i<${num_fhrs}; i++ )); do
fn_atm_nemsio="${EXTRN_MDL_FNS[$i]}"
fi
;;
+ "GDASENKF")
+ fn_atm_nemsio="${EXTRN_MDL_FNS[0][$i]}"
+ fn_sfc_nemsio="${EXTRN_MDL_FNS[1][$i]}"
+ ;;
"GEFS")
fn_grib2="${EXTRN_MDL_FNS[$i]}"
;;
diff --git a/ush/get_extrn_mdl_file_dir_info.sh b/ush/get_extrn_mdl_file_dir_info.sh
index 86320e7bd..03c83144a 100755
--- a/ush/get_extrn_mdl_file_dir_info.sh
+++ b/ush/get_extrn_mdl_file_dir_info.sh
@@ -311,6 +311,7 @@ fi
[ "${extrn_mdl_name}" = "FV3GFS" -a "${MACHINE}" = "ORION" ] || \
[ "${extrn_mdl_name}" = "GEFS" -a "${MACHINE}" = "JET" ] || \
[ "${extrn_mdl_name}" = "GEFS" -a "${MACHINE}" = "HERA" ] || \
+ [ "${extrn_mdl_name}" = "GDASENKF" -a "${MACHINE}" = "JET" ] || \
[ "${extrn_mdl_name}" = "FV3GFS" -a "${MACHINE}" = "JET" ] || \
[ "${extrn_mdl_name}" = "FV3GFS" -a "${MACHINE}" = "HERA" ]; then
#
@@ -395,8 +396,10 @@ fi
# fns=( "gfs.t${hh}z.pgrb2.0p25.anl" ) # Get only 0.25 degree files for now.
# fns=( "gfs.t${hh}z.pgrb2.0p25.f000" ) # Get only 0.25 degree files for now.
- if [ "${MACHINE}" = "JET" ] || [ "${MACHINE}" = "HERA" ] || [ "${MACHINE}" = "ORION" ]; then
+ if [ "${MACHINE}" = "JET" ] || [ "${MACHINE}" = "ORION" ]; then
fns_on_disk=( "${yy}${ddd}${hh}0${fcst_mn}0${fcst_hh}" )
+ elif [ "${MACHINE}" = "HERA" ] ; then
+ fns_on_disk=( "gfs.t${hh}z.pgrb2.0p25.f0${fcst_hh}" )
else
fns_on_disk=( "gfs.t${hh}z.pgrb2.0p25.f0${fcst_hh}" "gfs.t${hh}z.sfcf0${fcst_hh}.nc") # use netcdf
fi
@@ -408,6 +411,13 @@ fi
fi
;;
+ "GDASENKF")
+ if [ "${MACHINE}" = "HERA" ] ; then
+ fns_on_disk=( "gdas.t${hh}z.atmf0${fcst_hh}.nc" "gdas.t${hh}z.sfcf0${fcst_hh}.nc") # use netcdf
+ fns_in_arcv=( "gfs.t${hh}z.pgrb2.0p25.f0${fcst_hh}" ) # Get only 0.25 degree files for now.
+ fi
+ ;;
+
"GEFS")
fcst_hh=( $( printf "%02d " "${time_offset_hrs}" ) )
prefix="${yy}${ddd}${hh}${mn}${fcst_mn}"
@@ -493,7 +503,7 @@ and analysis or forecast (anl_or_fcst):
fcst_hhh=( $( printf "%03d " "${lbc_spec_fhrs[@]}" ) )
- if [ "${MACHINE}" = "JET" ] || [ "${MACHINE}" = "HERA" ] || [ "${MACHINE}" = "ORION" ]; then
+ if [ "${MACHINE}" = "JET" ] || [ "${MACHINE}" = "ORION" ]; then
prefix=( "${yy}${ddd}${hh}${fcst_mn}0" )
fns_on_disk=( "${fcst_hhh[@]/#/$prefix}" )
else
@@ -511,6 +521,14 @@ and analysis or forecast (anl_or_fcst):
fi
;;
+ "GDASENKF")
+ fcst_hhh=( $( printf "%03d " "${lbc_spec_fhrs[@]}" ) )
+ if [ "${MACHINE}" = "HERA" ]; then
+ fns_on_disk=( "gdas.t${hh}z.atmf${fcst_hhh[@]}.nc" "gdas.t${hh}z.sfcf${fcst_hhh[@]}.nc") # use netcdf
+ fns_in_arcv=( "gdas.t${hh}z.atmf${fcst_hhh}.nc" "gdas.t${hh}z.sfcf${fcst_hhh}.nc" ) # for now.
+ fi
+ ;;
+
"GEFS")
fcst_hh=( $( printf "%02d " "${lbc_spec_fhrs[@]}" ) )
prefix="${yy}${ddd}${hh}${mn}${fcst_mn}"
@@ -644,7 +662,7 @@ has not been specified for this external model and machine combination:
sysdir="$sysbasedir/gfs.${yyyymmdd}/${hh}/atmos"
;;
"HERA")
- sysdir="$sysbasedir"
+ sysdir="$sysbasedir/gfs.${yyyymmdd}/${hh}/atmos"
;;
"ORION")
sysdir="$sysbasedir/gdas.${yyyymmdd}/${hh}/atmos"
@@ -664,6 +682,24 @@ has not been specified for this external model and machine combination:
*)
print_err_msg_exit "\
The system directory in which to look for external model output files
+has not been specified for this external model and machine combination:
+ extrn_mdl_name = \"${extrn_mdl_name}\"
+ MACHINE = \"$MACHINE\""
+ ;;
+ esac
+ ;;
+
+ "GDASENKF")
+ case "$MACHINE" in
+ "HERA")
+ sysdir="$sysbasedir/enkfgdas.${yyyymmdd}/${hh}/atmos/${GDASENKF_INPUT_SUBDIR}"
+ ;;
+ "JET")
+ sysdir="$sysbasedir"
+ ;;
+ *)
+ print_err_msg_exit "\
+The system directory in which to look for external model output files
has not been specified for this external model and machine combination:
extrn_mdl_name = \"${extrn_mdl_name}\"
MACHINE = \"$MACHINE\""
@@ -978,6 +1014,13 @@ has not been specified for this external model:
arcvrel_dir=""
;;
+ "GDASENKF")
+ arcv_dir=""
+ arcv_fmt="tar"
+ arcv_fns=""
+ arcv_fps="$arcv_dir/$arcv_fns"
+ arcvrel_dir=""
+ ;;
*)
print_err_msg_exit "\
diff --git a/ush/set_extrn_mdl_params.sh b/ush/set_extrn_mdl_params.sh
index 336d9fb0f..12ced2700 100644
--- a/ush/set_extrn_mdl_params.sh
+++ b/ush/set_extrn_mdl_params.sh
@@ -109,6 +109,17 @@ else
esac
;;
+ "GDASENKF")
+ case "$MACHINE" in
+ "HERA")
+ EXTRN_MDL_SYSBASEDIR_ICS="/scratch1/NCEPDEV/rstprod/com/gfs/prod"
+ ;;
+ "JET")
+ EXTRN_MDL_SYSBASEDIR_ICS="/mnt/lfs4/BMC/public/data/grids/enkf/atm"
+ ;;
+ esac
+ ;;
+
"GEFS")
case "$MACHINE" in
"HERA")
@@ -205,6 +216,9 @@ if [[ -z ${EXTRN_MDL_LBCS_OFFSET_HRS} ]]; then
"FV3GFS")
EXTRN_MDL_LBCS_OFFSET_HRS="0"
;;
+ "GDASENKF")
+ EXTRN_MDL_LBCS_OFFSET_HRS="6"
+ ;;
"GEFS")
EXTRN_MDL_LBCS_OFFSET_HRS="6"
;;
@@ -297,6 +311,17 @@ else
esac
;;
+ "GDASENKF")
+ case "$MACHINE" in
+ "HERA")
+ EXTRN_MDL_SYSBASEDIR_LBCS="/scratch1/NCEPDEV/rstprod/com/gfs/prod"
+ ;;
+ "JET")
+ EXTRN_MDL_SYSBASEDIR_LBCS="/mnt/lfs4/BMC/public/data/grids/enkf/atm"
+ ;;
+ esac
+ ;;
+
"GEFS")
case "$MACHINE" in
"JET")
diff --git a/ush/set_rrfs_config.sh b/ush/set_rrfs_config.sh
index ce2f25600..cab989dd7 100644
--- a/ush/set_rrfs_config.sh
+++ b/ush/set_rrfs_config.sh
@@ -52,14 +52,22 @@ if [[ $DO_RETRO == "TRUE" ]] ; then
fi
if [[ $MACHINE == "hera" ]] ; then
- if [[ ${DO_ENSEMBLE} == "TRUE" ]]; then
- if [[ ${EXTRN_MDL_NAME_ICS} == "GEFS" ]]; then
- EXTRN_MDL_SOURCE_BASEDIR_ICS="/scratch1/BMC/wrfruc/chunhua/data/GEFS/pgrb2"
- elif [[ ${EXTRN_MDL_NAME_ICS} == "HRRRDAS" ]]; then
- EXTRN_MDL_SOURCE_BASEDIR_ICS="/scratch1/BMC/wrfruc/chunhua/data/HRRRDAS"
- fi
- EXTRN_MDL_SOURCE_BASEDIR_LBCS="/scratch1/BMC/wrfruc/chunhua/data/GEFS/pgrb2"
- OBSPATH="/scratch1/BMC/wrfruc/chunhua/data/obs"
+ if [[ ${DO_ENSEMBLE} == "TRUE" ]]; then
+ if [[ ${EXTRN_MDL_NAME_ICS} == "GEFS" ]]; then
+ EXTRN_MDL_SOURCE_BASEDIR_ICS="/scratch1/BMC/wrfruc/chunhua/data/GEFS/pgrb2"
+ elif [[ ${EXTRN_MDL_NAME_ICS} == "HRRRDAS" ]]; then
+ EXTRN_MDL_SOURCE_BASEDIR_ICS="/scratch1/BMC/wrfruc/chunhua/data/HRRRDAS"
+ elif [[ ${EXTRN_MDL_NAME_ICS} == "GDASENKF" ]]; then
+ EXTRN_MDL_SOURCE_BASEDIR_ICS="/scratch1/BMC/wrfruc/chunhua/data/GDASENKF"
+ fi
+ if [[ ${EXTRN_MDL_NAME_LBCS} == "GEFS" ]]; then
+ EXTRN_MDL_SOURCE_BASEDIR_LBCS="/scratch1/BMC/wrfruc/chunhua/data/GEFS/pgrb2"
+ elif [[ ${EXTRN_MDL_NAME_LBCS} == "GDASENKF" ]]; then
+ EXTRN_MDL_SOURCE_BASEDIR_LBCS="/scratch1/BMC/wrfruc/chunhua/data/GDASENKF"
+ elif [[ ${EXTRN_MDL_NAME_LBCS} == "FV3GFS" ]]; then
+ EXTRN_MDL_SOURCE_BASEDIR_LBCS="/scratch1/BMC/wrfruc/chunhua/data/FV3GFS"
+ fi
+ OBSPATH="/scratch1/BMC/wrfruc/chunhua/data/obs"
else
# EXTRN_MDL_SOURCE_BASEDIR_ICS=/scratch2/BMC/zrtrr/rli/data/hrrr/conus/wrfnat/grib2
# EXTRN_MDL_SOURCE_BASEDIR_LBCS=/scratch2/BMC/zrtrr/rli/data/rap/full/wrfnat/grib2
diff --git a/ush/templates/FV3LAM_wflow.xml b/ush/templates/FV3LAM_wflow.xml
index 1534cfe33..d30bfca84 100644
--- a/ush/templates/FV3LAM_wflow.xml
+++ b/ush/templates/FV3LAM_wflow.xml
@@ -318,10 +318,11 @@ MODULES_RUN_TASK_FP script.
{%- if do_enscontrol %}
/gec00{% for m in range(2, num_ens_members+1) %}{{ " /gep%02d"%m }}{% endfor %}
_mem0000{% for m in range(2, num_ens_members+1) %}{{ " _mem%04d"%m }}{% endfor %}
- {%- else -%}
+ {%- else %}
{% for m in range(1, num_ens_members+1) %}{{ " /gep%02d"%m }}{% endfor %}
{% for m in range(1, num_ens_members+1) %}{{ " _mem%04d"%m }}{% endfor %}
{%- endif %}
+ {% for m in range(1, num_ens_members+1) %}{{ " /mem%03d"%m }}{% endfor %}
{%- endif %}