Skip to content

Commit

Permalink
add rotating early-cycle members
Browse files Browse the repository at this point in the history
  • Loading branch information
Travis J Elless authored and Travis J Elless committed Mar 5, 2024
1 parent ba6a4fd commit 4989e0f
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 10 deletions.
11 changes: 6 additions & 5 deletions parm/config/gfs/config.base
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,6 @@ export DO_MERGENSST="@DO_MERGENSST@"
# Hybrid related
export DOHYBVAR="@DOHYBVAR@"
export NMEM_ENS=@NMEM_ENS@
export NMEM_ENS_GFS=@NMEM_ENS@
export SMOOTH_ENKF="NO"
export l4densvar=".true."
export lwrite4danl=".true."
Expand All @@ -304,7 +303,7 @@ export lwrite4danl=".true."
if [[ ${DOHYBVAR} = "YES" ]]; then
export FHMIN_ENKF=3
export FHMAX_ENKF=9
export FHMAX_ENKF_GFS=120
export FHMAX_ENKF_GFS=12
export FHOUT_ENKF_GFS=3
if [[ ${l4densvar} = ".true." ]]; then
export FHOUT=1
Expand All @@ -331,6 +330,11 @@ fi

if [[ "${DOIAU_ENKF}" = "NO" ]]; then export IAUFHRS_ENKF="6"; fi

# Early-cycle EnKF parameters
export NMEM_ENS_GFS=30
export NMEM_ENS_GFS_OFFSET=20
export DO_CALC_INCREMENT_ENKF_GFS="NO"

# turned on nsst in anal and/or fcst steps, and turn off rtgsst
export DONST="YES"
if [[ ${DONST} = "YES" ]]; then export FNTSFA=" "; fi
Expand All @@ -347,9 +351,6 @@ export MAKE_ACFTBUFR="@MAKE_ACFTBUFR@"
# Analysis increments to zero in CALCINCEXEC
export INCREMENTS_TO_ZERO="'liq_wat_inc','icmr_inc','rwmr_inc','snmr_inc','grle_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','rwmr_inc','snmr_inc','grle_inc'"
export INCVARS_EFOLD="5"
Expand Down
13 changes: 11 additions & 2 deletions scripts/exgdas_enkf_ecen.sh
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ GPREFIX=${GPREFIX:-""}
GPREFIX_ENS=${GPREFIX_ENS:-$GPREFIX}

# Variables
NMEM_ENS=${NMEM_ENS:-80}
imp_physics=${imp_physics:-99}
INCREMENTS_TO_ZERO=${INCREMENTS_TO_ZERO:-"'NONE'"}
DOIAU=${DOIAU_ENKF:-"NO"}
Expand All @@ -61,8 +60,13 @@ FHOUT=${FHOUT_ECEN:-3}
FHSFC=${FHSFC_ECEN:-$FHMIN}
if [ $RUN = "enkfgfs" ]; then
DO_CALC_INCREMENT=${DO_CALC_INCREMENT_ENKF_GFS:-"NO"}
NMEM_ENS=${NMEM_ENS_GFS:-30}
ec_offset=${NMEM_ENS_GFS_OFFSET:-20}
mem_offset=$(($ec_offset*$cyc/6))
else
DO_CALC_INCREMENT=${DO_CALC_INCREMENT:-"NO"}
NMEM_ENS=${NMEM_ENS:-80}
mem_offset=0
fi

# global_chgres stuff
Expand Down Expand Up @@ -106,12 +110,17 @@ ENKF_SUFFIX="s"
for FHR in $(seq $FHMIN $FHOUT $FHMAX); do

for imem in $(seq 1 $NMEM_ENS); do
smem=$(($imem+$mem_offset))
if (($smem > 80)); then
smem=$(($smem-80))
fi
gmemchar="mem"$(printf %03i $smem)
memchar="mem"$(printf %03i $imem)

MEMDIR=${memchar} YMD=${PDY} HH=${cyc} generate_com -x \
COM_ATMOS_ANALYSIS_MEM:COM_ATMOS_ANALYSIS_TMPL

MEMDIR=${memchar} RUN=${GDUMP_ENS} YMD=${gPDY} HH=${gcyc} generate_com -x \
MEMDIR=${gmemchar} RUN=${GDUMP_ENS} YMD=${gPDY} HH=${gcyc} generate_com -x \
COM_ATMOS_HISTORY_MEM_PREV:COM_ATMOS_HISTORY_TMPL

${NLN} "${COM_ATMOS_HISTORY_MEM_PREV}/${GPREFIX_ENS}atmf00${FHR}${ENKF_SUFFIX}.nc" "./atmges_${memchar}"
Expand Down
14 changes: 13 additions & 1 deletion scripts/exgdas_enkf_sfc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,14 @@ GPREFIX=${GPREFIX:-""}
GPREFIX_ENS=${GPREFIX_ENS:-${GPREFIX}}

# Variables
if [ $RUN = "enkfgfs" ]; then
NMEM_ENS=${NMEM_ENS_GFS:-30}
ec_offset=${NMEM_ENS_GFS_OFFSET:-20}
mem_offset=$(($ec_offset*$cyc/6))
else
NMEM_ENS=${NMEM_ENS:-80}
mem_offset=0
fi
DOIAU=${DOIAU_ENKF:-"NO"}

# Global_cycle stuff
Expand Down Expand Up @@ -133,13 +140,18 @@ if [ $DOIAU = "YES" ]; then

for imem in $(seq 1 $NMEM_ENS); do

smem=$(($imem+$mem_offset))
if (($smem > 80)); then
smem=$(($smem-80))
fi
gmemchar="mem"$(printf %03i $smem)
cmem=$(printf %03i $imem)
memchar="mem$cmem"

MEMDIR=${memchar} YMD=${PDY} HH=${cyc} generate_com \
COM_ATMOS_RESTART_MEM:COM_ATMOS_RESTART_TMPL

MEMDIR=${memchar} RUN="enkfgdas" YMD=${gPDY} HH=${gcyc} generate_com \
MEMDIR=${gmemchar} RUN=${GDSUMP_ENS} YMD=${gPDY} HH=${gcyc} generate_com \
COM_ATMOS_RESTART_MEM_PREV:COM_ATMOS_RESTART_TMPL

[[ ${TILE_NUM} -eq 1 ]] && mkdir -p "${COM_ATMOS_RESTART_MEM}"
Expand Down
12 changes: 10 additions & 2 deletions scripts/exgdas_enkf_update.sh
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@ ENKFSTAT=${ENKFSTAT:-${APREFIX}enkfstat}

# Namelist parameters
USE_CORRELATED_OBERRS=${USE_CORRELATED_OBERRS:-"NO"}
NMEM_ENS=${NMEM_ENS:-80}
NAM_ENKF=${NAM_ENKF:-""}
SATOBS_ENKF=${SATOBS_ENKF:-""}
OZOBS_ENKF=${OZOBS_ENKF:-""}
Expand All @@ -83,8 +82,12 @@ modelspace_vloc=${modelspace_vloc:-".false."} # if true, 'vlocal_eig.dat' is nee
IAUFHRS_ENKF=${IAUFHRS_ENKF:-6}
if [ $RUN = "enkfgfs" ]; then
DO_CALC_INCREMENT=${DO_CALC_INCREMENT_ENKF_GFS:-"NO"}
NMEM_ENS=${NMEM_ENS_GFS:-30}
ec_offset=${NMEM_ENS_GFS_OFFSET:-20}
else
DO_CALC_INCREMENT=${DO_CALC_INCREMENT:-"NO"}
NMEM_ENS=${NMEM_ENS:-80}
mem_offset=0
fi
INCREMENTS_TO_ZERO=${INCREMENTS_TO_ZERO:-"'NONE'"}

Expand Down Expand Up @@ -178,9 +181,14 @@ else
fi
nfhrs=$(echo $IAUFHRS_ENKF | sed 's/,/ /g')
for imem in $(seq 1 $NMEM_ENS); do
smem=$(($imem+mem_offset))
if (($smem > 80)); then
smem=$(($smem-80))
fi
gmemchar="mem"$(printf %03i $imem)
memchar="mem"$(printf %03i $imem)

MEMDIR=${memchar} RUN=${GDUMP_ENS} YMD=${gPDY} HH=${gcyc} generate_com -x \
MEMDIR=${gmemchar} RUN=${GDUMP_ENS} YMD=${gPDY} HH=${gcyc} generate_com -x \
COM_ATMOS_HISTORY_MEM_PREV:COM_ATMOS_HISTORY_TMPL

MEMDIR=${memchar} YMD=${PDY} HH=${cyc} generate_com -x \
Expand Down

0 comments on commit 4989e0f

Please sign in to comment.