From 2ecfa880a3f9ab52ff3e7e46373db9e6d9d67b88 Mon Sep 17 00:00:00 2001 From: Travis Elless <113720457+TravisElless-NOAA@users.noreply.github.com> Date: Wed, 25 Jan 2023 23:10:52 +0000 Subject: [PATCH] Create analysis files for early-cycle EnKF by default (#1237) The upcoming GEFS implementation plans to use analysis files from the early-cycle EnKF to cold start the EPS. This PR allows the early-cycle EnKF members to produce analysis files as the default option. Running in this mode will break early-cycle EnKF forecast functionality - running with this new config.base option set to "NO" and/or a future PR will be needed to restore the early-cycle EnKF forecast job. These changes do not impact the ability for the workflow to successfully cycle. --- parm/config/config.base.emc.dyn | 3 +++ scripts/exgdas_enkf_ecen.sh | 11 +++++++---- scripts/exgdas_enkf_update.sh | 9 +++++++-- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/parm/config/config.base.emc.dyn b/parm/config/config.base.emc.dyn index fc02127106..348f6c1f84 100755 --- a/parm/config/config.base.emc.dyn +++ b/parm/config/config.base.emc.dyn @@ -367,6 +367,9 @@ export MAKE_ACFTBUFR="@MAKE_ACFTBUFR@" # Analysis increments to zero in CALCINCEXEC export INCREMENTS_TO_ZERO="'liq_wat_inc','icmr_inc'" +# Write analysis files for early cycle EnKF +export DO_CALC_INCREMENT_ENKF_GFS="YES" + # Stratospheric increments to zero export INCVARS_ZERO_STRAT="'sphum_inc','liq_wat_inc','icmr_inc'" export INCVARS_EFOLD="5" diff --git a/scripts/exgdas_enkf_ecen.sh b/scripts/exgdas_enkf_ecen.sh index a5603eee6a..32aed709c5 100755 --- a/scripts/exgdas_enkf_ecen.sh +++ b/scripts/exgdas_enkf_ecen.sh @@ -24,6 +24,7 @@ pwd=$(pwd) # Base variables CDATE=${CDATE:-"2010010100"} +CDUMP=${CDUMP:-"gdas"} DONST=${DONST:-"NO"} export CASE=${CASE:-384} ntiles=${ntiles:-6} @@ -60,8 +61,11 @@ FHMIN=${FHMIN_ECEN:-3} FHMAX=${FHMAX_ECEN:-9} FHOUT=${FHOUT_ECEN:-3} FHSFC=${FHSFC_ECEN:-$FHMIN} -DO_CALC_INCREMENT=${DO_CALC_INCREMENT:-"NO"} - +if [ $CDUMP = "gfs" ]; then + DO_CALC_INCREMENT=${DO_CALC_INCREMENT_ENKF_GFS:-"NO"} +else + DO_CALC_INCREMENT=${DO_CALC_INCREMENT:-"NO"} +fi # global_chgres stuff CHGRESNEMS=${CHGRESNEMS:-$HOMEgfs/exec/enkf_chgres_recenter.x} @@ -328,8 +332,7 @@ if [ $DO_CALC_INCREMENT = "YES" ]; then . prep_step $NCP $CALCINCEXEC $DATA - - rm calc_increment.nml + [[ -f calc_increment.nml ]] && rm calc_increment.nml cat > calc_increment.nml << EOF &setup datapath = './' diff --git a/scripts/exgdas_enkf_update.sh b/scripts/exgdas_enkf_update.sh index daba9b83f8..b22dcbfea8 100755 --- a/scripts/exgdas_enkf_update.sh +++ b/scripts/exgdas_enkf_update.sh @@ -41,6 +41,7 @@ ENKFEXEC=${ENKFEXEC:-$HOMEgfs/exec/enkf.x} # Cycling and forecast hour specific parameters CDATE=${CDATE:-"2001010100"} +CDUMP=${CDUMP:-"gdas"} # Filenames. GPREFIX=${GPREFIX:-""} @@ -83,7 +84,11 @@ cnvw_option=${cnvw_option:-".false."} netcdf_diag=${netcdf_diag:-".true."} modelspace_vloc=${modelspace_vloc:-".false."} # if true, 'vlocal_eig.dat' is needed IAUFHRS_ENKF=${IAUFHRS_ENKF:-6} -DO_CALC_INCREMENT=${DO_CALC_INCREMENT:-"NO"} +if [ $CDUMP = "gfs" ]; then + DO_CALC_INCREMENT=${DO_CALC_INCREMENT_ENKF_GFS:-"NO"} +else + DO_CALC_INCREMENT=${DO_CALC_INCREMENT:-"NO"} +fi INCREMENTS_TO_ZERO=${INCREMENTS_TO_ZERO:-"'NONE'"} ################################################################################ @@ -94,11 +99,11 @@ LEVS_ENKF=${LEVS_ENKF:-$($NCLEN $ATMGES_ENSMEAN pfull)} # get LEVS_ENFK use_gfs_ncio=".true." use_gfs_nemsio=".false." paranc=${paranc:-".true."} +WRITE_INCR_ZERO="incvars_to_zero= $INCREMENTS_TO_ZERO," if [ $DO_CALC_INCREMENT = "YES" ]; then write_fv3_incr=".false." else write_fv3_incr=".true." - WRITE_INCR_ZERO="incvars_to_zero= $INCREMENTS_TO_ZERO," fi LATA_ENKF=${LATA_ENKF:-$LATB_ENKF} LONA_ENKF=${LONA_ENKF:-$LONB_ENKF}