Skip to content

Commit

Permalink
Merge branch 'NOAA-EMC:develop' into feature/bugzilla_1373
Browse files Browse the repository at this point in the history
  • Loading branch information
KateFriedman-NOAA authored Feb 24, 2025
2 parents 80ab616 + ba09498 commit bfd9ff4
Show file tree
Hide file tree
Showing 14 changed files with 128 additions and 68 deletions.
9 changes: 6 additions & 3 deletions jobs/JGDAS_ENKF_UPDATE
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,13 @@ export APREFIX="${RUN}.t${cyc}z."
export GPREFIX="${GDUMP_ENS}.t${gcyc}z."

MEMDIR="ensstat" YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \
COM_ATMOS_ANALYSIS_STAT:COM_ATMOS_ANALYSIS_TMPL
COMIN_ATMOS_ANALYSIS_STAT:COM_ATMOS_ANALYSIS_TMPL

MEMDIR="ensstat" YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \
COMOUT_ATMOS_ANALYSIS_STAT:COM_ATMOS_ANALYSIS_TMPL

MEMDIR="ensstat" RUN="enkfgdas" YMD=${gPDY} HH=${gcyc} declare_from_tmpl -rx \
COM_ATMOS_HISTORY_STAT_PREV:COM_ATMOS_HISTORY_TMPL
COMIN_ATMOS_HISTORY_STAT_PREV:COM_ATMOS_HISTORY_TMPL


###############################################################
Expand All @@ -43,7 +46,7 @@ status=$?
# Send Alerts
##############################################
if [ ${SENDDBN} = YES ] ; then
"${DBNROOT}/bin/dbn_alert" "MODEL" "ENKF1_MSC_enkfstat" "${job}" "${COM_ATMOS_ANALYSIS_STAT}/${APREFIX}enkfstat"
"${DBNROOT}/bin/dbn_alert" "MODEL" "ENKF1_MSC_enkfstat" "${job}" "${COMOUT_ATMOS_ANALYSIS_STAT}/${APREFIX}enkfstat"
fi


Expand Down
1 change: 0 additions & 1 deletion parm/config/gefs/config.wave
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,6 @@ else
export WAVEICE_FID=glix_10m
fi

export WAVECUR_DID=rtofs
if [[ ${DO_OCN} == "YES" ]]; then
export WW3CURINP='CPL'
export WAVECUR_FID=
Expand Down
9 changes: 4 additions & 5 deletions parm/config/gfs/config.aeroanlgenb
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,16 @@ export JEDI_CONFIG_YAML="${PARMgfs}/gdas/aero_bmat_jedi_config.yaml.j2"
export JCB_BASE_YAML="${PARMgfs}/gdas/aero/jcb-base.yaml.j2"
export AERO_BMATRIX_STAGE_TMPL="${PARMgfs}/gdas/aero_stage_bmatrix_bkg.yaml.j2"
export AERO_BMATRIX_FINALIZE_TMPL="${PARMgfs}/gdas/aero_finalize_bmatrix_bkg.yaml.j2"
export aero_diffusion_iter=10
export aero_diffusion_horiz_len=2500e3
export aero_diffusion_fixed_val=1.0
export aero_diffusion_iter=200
export aero_diffusion_horiz_len=300e3
export aero_diffusion_fixed_val=20.0
export npx_clim_b=97
export npy_clim_b=97
export aero_diagb_weight=0.9
export aero_staticb_rescaling_factor=2.0
export aero_diagb_rescale=20.0
export aero_diagb_n_halo=4
export aero_diagb_n_neighbors=16
export aero_diagb_smooth_horiz_iter=0
export aero_diagb_smooth_horiz_iter=200
export aero_diagb_smooth_vert_iter=0

echo "END: config.aeroanlgenb"
2 changes: 1 addition & 1 deletion parm/config/gfs/config.com
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ echo "BEGIN: config.com"
#
if [[ "${RUN_ENVIR:-emc}" == "nco" ]]; then
COM_OBS_TMPL=$(compath.py "${envir}/obsproc/${obsproc_ver}")'/${RUN}.${YMD}/${HH}/atmos'
COM_RTOFS_TMPL=$(compath.py "${envir}/${WAVECUR_DID}/${rtofs_ver}")
COM_RTOFS_TMPL=$(compath.py "${envir}/rtofs/${rtofs_ver}")
else
COM_OBS_TMPL='${ROTDIR}/${RUN}.${YMD}/${HH}/obs'
COM_RTOFS_TMPL='${DMPDIR}'
Expand Down
51 changes: 44 additions & 7 deletions parm/config/gfs/config.resources
Original file line number Diff line number Diff line change
Expand Up @@ -399,19 +399,23 @@ case ${step} in
"C1152" | "C768")
layout_x=8
layout_y=8
walltime="00:30:00"
;;
"C384")
layout_x=6
layout_y=6
walltime="00:20:00"
;;
"C192" | "C96")
layout_x=4
layout_y=4
walltime="00:10:00"
;;
"C48" )
# this case is for testing only
layout_x=1
layout_y=1
walltime="00:10:00"
;;
*)
echo "FATAL ERROR: Resources not defined for job ${step} at resolution ${CASE}"
Expand All @@ -420,31 +424,41 @@ case ${step} in

export layout_x
export layout_y
walltime="00:10:00"
ntasks=1
threads_per_task=1
tasks_per_node=$(( max_tasks_per_node / threads_per_task ))
memory="3072M"
;;

"aeroanlvar")

threads_per_task=1

case ${CASE} in
"C1152" | "C768")
layout_x=8
layout_y=8
walltime="00:45:00"
tasks_per_node=24
;;
"C384")
layout_x=6
layout_y=6
walltime="00:30:00"
tasks_per_node=24
;;
"C192" | "C96")
layout_x=4
layout_y=4
walltime="00:20:00"
tasks_per_node=$(( max_tasks_per_node / threads_per_task ))
;;
"C48" )
# this case is for testing only
layout_x=1
layout_y=1
walltime="00:20:00"
tasks_per_node=$(( max_tasks_per_node / threads_per_task ))
;;
*)
echo "FATAL ERROR: Resources not defined for job ${step} at resolution ${CASE}"
Expand All @@ -454,10 +468,7 @@ case ${step} in
export layout_x
export layout_y

walltime="00:30:00"
ntasks=$(( layout_x * layout_y * 6 ))
threads_per_task=1
tasks_per_node=$(( max_tasks_per_node / threads_per_task ))
export is_exclusive=True
;;

Expand Down Expand Up @@ -498,11 +509,36 @@ case ${step} in


"aeroanlfinal")
walltime="00:10:00"
case ${CASE} in
"C1152" | "C768")
layout_x=8
layout_y=8
walltime="00:30:00"
;;
"C384")
layout_x=6
layout_y=6
walltime="00:20:00"
;;
"C192" | "C96")
layout_x=4
layout_y=4
walltime="00:10:00"
;;
"C48" )
# this case is for testing only
layout_x=1
layout_y=1
walltime="00:10:00"
;;
*)
echo "FATAL ERROR: Resources not defined for job ${step} at resolution ${CASE}"
exit 4
esac
ntasks=1
threads_per_task=1
tasks_per_node=$(( max_tasks_per_node / threads_per_task ))
memory="3072M"
memory="13072M"
;;

"marineanlinit")
Expand Down Expand Up @@ -891,6 +927,7 @@ case ${step} in
declare -x "threads_per_task"="${UFS_THREADS}"
tasks_per_node=$(( max_tasks_per_node / threads_per_task ))

# TODO: make walltimes APP dependent
case "${CASE}" in
"C48" | "C96" | "C192")
declare -x "walltime_gdas"="00:20:00"
Expand All @@ -906,7 +943,7 @@ case ${step} in
;;
"C768" | "C1152")
# Not valid resolutions for ensembles
declare -x "walltime_gdas"="00:50:00"
declare -x "walltime_gdas"="01:20:00"
declare -x "walltime_gfs"="06:00:00"
;;
*)
Expand Down
1 change: 1 addition & 0 deletions parm/config/gfs/config.resources.WCOSS2
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
case ${step} in
"prep")
export is_exclusive=True
export tasks_per_node=5
export memory="480GB"
;;

Expand Down
1 change: 0 additions & 1 deletion parm/config/gfs/config.wave
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,6 @@ else
export WAVEICE_FID=glix_10m
fi

export WAVECUR_DID=rtofs
if [[ ${DO_OCN} == "YES" ]]; then
export WW3CURINP='CPL'
export WAVECUR_FID=
Expand Down
46 changes: 23 additions & 23 deletions scripts/exgdas_enkf_update.sh
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ GSI_SOILANAL=${GSI_SOILANAL:-"NO"}

################################################################################

ATMGES_ENSMEAN="${COM_ATMOS_HISTORY_STAT_PREV}/${GPREFIX}atmf006.ensmean.nc"
ATMGES_ENSMEAN="${COMIN_ATMOS_HISTORY_STAT_PREV}/${GPREFIX}atmf006.ensmean.nc"
LONB_ENKF=${LONB_ENKF:-$($NCLEN $ATMGES_ENSMEAN grid_xt)} # get LONB_ENKF
LATB_ENKF=${LATB_ENKF:-$($NCLEN $ATMGES_ENSMEAN grid_yt)} # get LATB_ENFK
LEVS_ENKF=${LEVS_ENKF:-$($NCLEN $ATMGES_ENSMEAN pfull)} # get LEVS_ENFK
Expand Down Expand Up @@ -142,7 +142,7 @@ $NLN $ANAVINFO anavinfo
$NLN $VLOCALEIG vlocal_eig.dat

# Bias correction coefficients based on the ensemble mean
${NLN} "${COM_ATMOS_ANALYSIS_STAT}/${GBIASe}" "satbias_in"
${NLN} "${COMIN_ATMOS_ANALYSIS_STAT}/${GBIASe}" "satbias_in"

################################################################################

Expand All @@ -152,13 +152,13 @@ if [ $USE_CFP = "YES" ]; then
cat > $DATA/untar.sh << EOFuntar
#!/bin/sh
memchar=\$1
COM_ATMOS_ANALYSIS=\$2
COMOUT_ATMOS_ANALYSIS=\$2
flist="$CNVSTAT $OZNSTAT $RADSTAT"
for ftype in \$flist; do
if [ \$memchar = "ensmean" ]; then
fname=\${COM_ATMOS_ANALYSIS}/\${ftype}.ensmean
fname=\${COMOUT_ATMOS_ANALYSIS}/\${ftype}.ensmean
else
fname=\${COM_ATMOS_ANALYSIS}/\${ftype}
fname=\${COMOUT_ATMOS_ANALYSIS}/\${ftype}
fi
tar -xvf \$fname
done
Expand All @@ -171,13 +171,13 @@ fi

flist="$CNVSTAT $OZNSTAT $RADSTAT"
if [ $USE_CFP = "YES" ]; then
echo "${nm} ${DATA}/untar.sh ensmean ${COM_ATMOS_ANALYSIS_STAT}" | tee -a "${DATA}/mp_untar.sh"
echo "${nm} ${DATA}/untar.sh ensmean ${COMIN_ATMOS_ANALYSIS_STAT}" | tee -a "${DATA}/mp_untar.sh"
if [ ${CFP_MP:-"NO"} = "YES" ]; then
nm=$((nm+1))
fi
else
for ftype in $flist; do
fname="${COM_ATMOS_ANALYSIS_STAT}/${ftype}.ensmean"
fname="${COMIN_ATMOS_ANALYSIS_STAT}/${ftype}.ensmean"
tar -xvf $fname
done
fi
Expand All @@ -191,55 +191,55 @@ for imem in $(seq 1 $NMEM_ENS); do
memchar="mem"$(printf %03i $imem)

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

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

if [ $lobsdiag_forenkf = ".false." ]; then
if [ $USE_CFP = "YES" ]; then
echo "${nm} ${DATA}/untar.sh ${memchar} ${COM_ATMOS_ANALYSIS_MEM}" | tee -a "${DATA}/mp_untar.sh"
echo "${nm} ${DATA}/untar.sh ${memchar} ${COMOUT_ATMOS_ANALYSIS_MEM}" | tee -a "${DATA}/mp_untar.sh"
if [ ${CFP_MP:-"NO"} = "YES" ]; then
nm=$((nm+1))
fi
else
for ftype in $flist; do
fname="${COM_ATMOS_ANALYSIS_MEM}/${ftype}"
fname="${COMOUT_ATMOS_ANALYSIS_MEM}/${ftype}"
tar -xvf $fname
done
fi
fi
mkdir -p "${COM_ATMOS_ANALYSIS_MEM}"
mkdir -p "${COMOUT_ATMOS_ANALYSIS_MEM}"
for FHR in $nfhrs; do
${NLN} "${COM_ATMOS_HISTORY_MEM_PREV}/${GPREFIX}atmf00${FHR}${ENKF_SUFFIX}.nc" \
${NLN} "${COMIN_ATMOS_HISTORY_MEM_PREV}/${GPREFIX}atmf00${FHR}${ENKF_SUFFIX}.nc" \
"sfg_${PDY}${cyc}_fhr0${FHR}_${memchar}"
if [ $GSI_SOILANAL = "YES" ]; then
${NLN} "${COM_ATMOS_HISTORY_MEM_PREV}/${GPREFIX}sfcf00${FHR}${ENKF_SUFFIX}.nc" \
${NLN} "${COMIN_ATMOS_HISTORY_MEM_PREV}/${GPREFIX}sfcf00${FHR}${ENKF_SUFFIX}.nc" \
"bfg_${PDY}${cyc}_fhr0${FHR}_${memchar}"
fi
if [ $cnvw_option = ".true." ]; then
${NLN} "${COM_ATMOS_HISTORY_MEM_PREV}/${GPREFIX}sfcf00${FHR}.nc" \
${NLN} "${COMIN_ATMOS_HISTORY_MEM_PREV}/${GPREFIX}sfcf00${FHR}.nc" \
"sfgsfc_${PDY}${cyc}_fhr0${FHR}_${memchar}"
fi
if [ $FHR -eq 6 ]; then
if [ $DO_CALC_INCREMENT = "YES" ]; then
${NLN} "${COM_ATMOS_ANALYSIS_MEM}/${APREFIX}atmanl.nc" \
${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX}atmanl.nc" \
"sanl_${PDY}${cyc}_fhr0${FHR}_${memchar}"
else
${NLN} "${COM_ATMOS_ANALYSIS_MEM}/${APREFIX}atminc.nc" \
${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX}atminc.nc" \
"incr_${PDY}${cyc}_fhr0${FHR}_${memchar}"
fi
else
if [ $DO_CALC_INCREMENT = "YES" ]; then
${NLN} "${COM_ATMOS_ANALYSIS_MEM}/${APREFIX}atma00${FHR}.nc" \
${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX}atma00${FHR}.nc" \
"sanl_${PDY}${cyc}_fhr0${FHR}_${memchar}"
else
${NLN} "${COM_ATMOS_ANALYSIS_MEM}/${APREFIX}atmi00${FHR}.nc" \
${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX}atmi00${FHR}.nc" \
"incr_${PDY}${cyc}_fhr0${FHR}_${memchar}"
fi
fi
if [ $GSI_SOILANAL = "YES" ]; then
${NLN} "${COM_ATMOS_ANALYSIS_MEM}/${APREFIX}sfci00${FHR}.nc" \
${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX}sfci00${FHR}.nc" \
"sfcincr_${PDY}${cyc}_fhr0${FHR}_${memchar}"
fi
done
Expand All @@ -248,10 +248,10 @@ done
# Ensemble mean guess
for FHR in $nfhrs; do

${NLN} "${COM_ATMOS_HISTORY_STAT_PREV}/${GPREFIX}atmf00${FHR}.ensmean.nc" \
${NLN} "${COMIN_ATMOS_HISTORY_STAT_PREV}/${GPREFIX}atmf00${FHR}.ensmean.nc" \
"sfg_${PDY}${cyc}_fhr0${FHR}_ensmean"
if [ $cnvw_option = ".true." ]; then
${NLN} "${COM_ATMOS_HISTORY_STAT_PREV}/${GPREFIX}sfcf00${FHR}.ensmean.nc" \
${NLN} "${COMIN_ATMOS_HISTORY_STAT_PREV}/${GPREFIX}sfcf00${FHR}.ensmean.nc" \
"sfgsfc_${PDY}${cyc}_fhr0${FHR}_ensmean"
fi
done
Expand Down Expand Up @@ -412,7 +412,7 @@ $APRUN_ENKF ${DATA}/$(basename $ENKFEXEC) 1>stdout 2>stderr
export err=$?; err_chk

# Cat runtime output files.
cat stdout stderr > "${COM_ATMOS_ANALYSIS_STAT}/${ENKFSTAT}"
cat stdout stderr > "${COMOUT_ATMOS_ANALYSIS_STAT}/${ENKFSTAT}"

################################################################################
# Postprocessing
Expand Down
Loading

0 comments on commit bfd9ff4

Please sign in to comment.