Skip to content

Commit

Permalink
Merge branch 'NOAA-EMC:develop' into feature/bugzilla_1227
Browse files Browse the repository at this point in the history
  • Loading branch information
KateFriedman-NOAA authored Feb 21, 2025
2 parents 871e934 + 08a14bd commit 829fc07
Show file tree
Hide file tree
Showing 4 changed files with 64 additions and 38 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
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
45 changes: 34 additions & 11 deletions ush/wave_grib2_sbs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -169,11 +169,11 @@ if [[ ! -s "${com_dir}/${outfile}.idx" ]]; then
fi

if (( fhr > 0 )); then
${WGRIB2} gribfile -set_date "${PDY}${cyc}" -set_ftime "${fhr} hour fcst" -grib "${com_dir}/${outfile}"
${WGRIB2} gribfile -set_date "${PDY}${cyc}" -set_ftime "${fhr} hour fcst" -grib "${outfile}"
err=$?
else
${WGRIB2} gribfile -set_date "${PDY}${cyc}" -set_ftime "${fhr} hour fcst" \
-set table_1.4 1 -set table_1.2 1 -grib "${com_dir}/${outfile}"
-set table_1.4 1 -set table_1.2 1 -grib "${outfile}"
err=$?
fi

Expand All @@ -183,27 +183,52 @@ if [[ ! -s "${com_dir}/${outfile}.idx" ]]; then
echo '********************************************* '
echo "*** FATAL ERROR : ERROR IN ${pgm} *** " # FIXME: This is not an error in $pgm, but in WGRIB2
echo '********************************************* '
echo ' '
echo " "
set_trace
exit 3
fi

# Create index
${WGRIB2} -s "${com_dir}/${outfile}" > "${com_dir}/${outfile}.idx"
${WGRIB2} -s "${outfile}" > "${outfile}.idx"

# Create grib2 subgrid is this is the source grid
# Create grib2 subgrid if this is the source grid
if [[ "${grdID}" = "${WAV_SUBGRBSRC}" ]]; then
for subgrb in ${WAV_SUBGRB}; do
subgrbref=$(echo ${!subgrb} | cut -d " " -f 1-20)
subgrbnam=$(echo ${!subgrb} | cut -d " " -f 21)
subgrbres=$(echo ${!subgrb} | cut -d " " -f 22)
subfnam="${WAV_MOD_TAG}.${cycle}${ENSTAG}.${subgrbnam}.${subgrbres}.f${FH3}.grib2"
${COPYGB2} -g "${subgrbref}" -i0 -x "${com_dir}/${outfile}" "${com_dir}/${subfnam}"
${WGRIB2} -s "${com_dir}/${subfnam}" > "${com_dir}/${subfnam}.idx"
${COPYGB2} -g "${subgrbref}" -i0 -x "${outfile}" "${subfnam}"
${WGRIB2} -s "${subfnam}" > "${subfnam}.idx"
done
fi

# 1.e Save in /com
# Move grib files to COM directory
if [[ -s "${outfile}" ]] && [[ -s "${outfile}.idx" ]]; then
cpfs "${outfile}" "${com_dir}/${outfile}"
cpfs "${outfile}.idx" "${com_dir}/${outfile}.idx"
echo "Copied ${outfile} and ${outfile}.idx from ${GRIBDATA} to COM"
else
echo "FATAL ERROR: ${outfile} and ${outfile}.idx not found in ${GRIBDATA} to copy to COM"
exit 4
fi

if [[ "${grdID}" = "${WAV_SUBGRBSRC}" ]]; then
for subgrb in ${WAV_SUBGRB}; do
subgrbnam=$(echo "${!subgrb}" | cut -d " " -f 21)
subgrbres=$(echo "${!subgrb}" | cut -d " " -f 22)
subfnam="${WAV_MOD_TAG}.${cycle}${ENSTAG}.${subgrbnam}.${subgrbres}.f${FH3}.grib2"
if [[ -s "${subfnam}" ]] && [[ -s "${subfnam}.idx" ]]; then
cpfs "${subfnam}" "${com_dir}/${subfnam}"
cpfs "${subfnam}.idx" "${com_dir}/${subfnam}.idx"
echo "Copied ${subfnam} and ${subfnam}.idx from ${GRIBDATA} to COM"
else
echo "FATAL ERROR: ${subfnam} and ${subfnam}.idx not found in ${GRIBDATA} to copy to COM"
exit 4
fi
done
fi

if [[ ! -s "${com_dir}/${outfile}" ]]; then
set +x
Expand Down Expand Up @@ -232,16 +257,14 @@ if [[ ! -s "${com_dir}/${outfile}.idx" ]]; then

if [[ "${SENDDBN}" = 'YES' ]] && [[ ${outfile} != *global.0p50* ]]; then
set +x
echo " Alerting GRIB file as ${com_dir}/${outfile}"
echo " Alerting GRIB index file as ${com_dir}/${outfile}.idx"
echo " Alerting GRIB file as ${outfile}"
echo " Alerting GRIB index file as ${outfile}.idx"
set_trace
"${DBNROOT}/bin/dbn_alert" MODEL "${alertName}_WAVE_GB2" "${job}" "${com_dir}/${outfile}"
"${DBNROOT}/bin/dbn_alert" MODEL "${alertName}_WAVE_GB2_WIDX" "${job}" "${com_dir}/${outfile}.idx"
else
echo "${outfile} is global.0p50 or SENDDBN is NO, no alert sent"
fi


# --------------------------------------------------------------------------- #
# 3. Clean up the directory

Expand Down
2 changes: 1 addition & 1 deletion ush/wave_grid_interp_sbs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ source "${USHgfs}/preamble.sh"
for ID in ${waveGRD} ${grdID}; do
${NLN} "${DATA}/mod_def.${ID}" "mod_def.${ID}"
done


# --------------------------------------------------------------------------- #
# 1. Generate GRID file with all data
Expand Down

0 comments on commit 829fc07

Please sign in to comment.