Skip to content

Commit

Permalink
Modifies how 15 minute output is processed (#592)
Browse files Browse the repository at this point in the history
* Adds new subh_fields.txt file to pull needed records from full hour
output for 15 minute products.
* Updates subsetting file for top of hour 15 minute products, and adds
comment in post script of command needed to use it.
* Adds item to combine the 15 minute files at the top of the hour.
Details may need to change, but believe this removes a need for
subhourly prdgen jobs.
* Adds some error checking to ensure that the needed 15 minute output
is available, and to exit if it isn't after ~10 minutes.  Also cleaned
up the formatting for the new material to make the nested if blocks
clearer.
* Adds POSTPROC_SUBH_LEN_HRS variable to control how long to
apply the 15 minute aggregating within exrrfs_post.sh
  • Loading branch information
MatthewPyle-NOAA authored Jan 14, 2025
1 parent 072a89c commit 95d388e
Show file tree
Hide file tree
Showing 9 changed files with 103 additions and 100 deletions.
86 changes: 1 addition & 85 deletions fix/upp/postxconfig-NT-rrfs_subh.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
1
41
39
PRSLEV
32769
ncep_nco
Expand Down Expand Up @@ -1444,90 +1444,6 @@ spec_hgt_lvl_above_grnd
?
?
?
200
TCOLW_ON_ENTIRE_ATMOS
?
1
tmpl4_0
TCOLW
NCEP
?
entire_atmos_single_lyr
0
?
0
?
?
0
?
0
?
?
?
?
0
0.0
0
0.0
?
0
0.0
0
0.0
0
0.0
0
0.0
1
5.0
0
0
0
?
?
?
201
TCOLI_ON_ENTIRE_ATMOS
?
1
tmpl4_0
TCOLI
NCEP
?
entire_atmos_single_lyr
0
?
0
?
?
0
?
0
?
?
?
?
0
0.0
0
0.0
?
0
0.0
0
0.0
0
0.0
0
0.0
1
5.0
0
0
0
?
?
?
408
GSD_HGT_ON_CLOUD_CEILING
GSD_geopotential height on cloud ceiling
Expand Down
14 changes: 0 additions & 14 deletions fix/upp/rrfs_postcntrl_subh.xml
Original file line number Diff line number Diff line change
Expand Up @@ -231,20 +231,6 @@
<scale>4.0</scale>
</param>

<param>
<shortname>TCOLW_ON_ENTIRE_ATMOS</shortname>
<pname>TCOLW</pname>
<table_info>NCEP</table_info>
<scale>5.0</scale>
</param>

<param>
<shortname>TCOLI_ON_ENTIRE_ATMOS</shortname>
<pname>TCOLI</pname>
<table_info>NCEP</table_info>
<scale>5.0</scale>
</param>

<param>
<shortname>GSD_HGT_ON_CLOUD_CEILING</shortname>
<pname>HGT</pname>
Expand Down
40 changes: 40 additions & 0 deletions fix/upp/subh_fields.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
REFC:entire atmosphere (considered as a single layer)
VIL:entire atmosphere (considered as a single layer)
VIL:entire atmosphere:
VIS:surface:
GUST:surface:
RETOP:entire atmosphere (considered as a single layer)
REFD:4000 m above ground:
REFD:1000 m above ground:
PRES:surface:
HGT:surface:
ASNOW:surface:0-
TMP:2 m above ground:
SPFH:2 m above ground:
DPT:2 m above ground:
UGRD:10 m above ground:
VGRD:10 m above ground:
:CPOFP:surface:
:PRATE:surface:
:APCP:surface:0-
:FROZR:surface:0-
FRZR:surface:0-
TSNOWP:surface:0-
CSNOW:surface:
:CICEP:surface:
:CFRZR:surface:
:CRAIN:surface:
HGT:cloud base:
HGT:cloud ceiling:
HGT:cloud top:
ULWRF:top of atmosphere:
DSWRF:surface:
DLWRF:surface:
USWRF:surface:
ULWRF:surface:
VBDSF:surface:
VDDSF:surface:
USWRF:top of atmosphere:
:UPHL:5000-2000 m above ground:
UGRD:80 m above ground:
VGRD:80 m above ground:
4 changes: 4 additions & 0 deletions parm/config/det/var_defns.sh
Original file line number Diff line number Diff line change
Expand Up @@ -585,6 +585,9 @@ WFLOW_LAUNCH_LOG_FN="log.launch_FV3LAM_wflow"
# POSTPROC_LONG_LEN_HRS:
# The length of long post process, in integer hours.
#
# POSTPROC_SUBH_LEN_HRS:
# The length of subhourly product generation, in integer hours.
#
# CYCL_HRS_HYB_FV3LAM_ENS:
# An array containing the hours of the day at which the GSI hybrid using
# FV3LAM ensemeble.
Expand Down Expand Up @@ -630,6 +633,7 @@ BOUNDARY_LONG_LEN_HRS="0"
BOUNDARY_PROC_GROUP_NUM="72"
POSTPROC_LEN_HRS="18"
POSTPROC_LONG_LEN_HRS="60"
POSTPROC_SUBH_LEN_HRS="18"
FCST_LEN_HRS="18"
FCST_LEN_HRS_SPINUP="1"
FCST_LEN_HRS_CYCLES=( \
Expand Down
49 changes: 48 additions & 1 deletion scripts/exrrfs_post.sh
Original file line number Diff line number Diff line change
Expand Up @@ -131,12 +131,18 @@ fi
dyn_file="${INPUT_DATA}/dynf${fhr}.nc"
phy_file="${INPUT_DATA}/phyf${fhr}.nc"

SUBH_GEN=0

len_fhr=${#fhr}
if [ ${len_fhr} -eq 9 ]; then
post_fhr=${fhr:0:3}
post_min=${fhr:4:2}
if [ ${post_min} -lt ${nsout_min} ]; then
post_min=00
if [ $post_fhr -ge 1 -a $post_fhr -le $POSTPROC_SUBH_LEN_HRS ]
then
SUBH_GEN=1
fi
fi
else
post_fhr=${fhr}
Expand Down Expand Up @@ -376,7 +382,48 @@ fi

if [ -f PRSLEV.GrbF${post_fhr} ]; then
wgrib2 PRSLEV.GrbF${post_fhr} -set center 7 -grib ${bgdawp} >>$pgmout 2>>errfile
fi
if [ $SUBH_GEN = 1 ]
then
bgdawp_subh_combo=${DATA}/${net4}.t${cyc}z.prslev.${gridspacing}.subh.f${fhr}.${gridname}.grib2
bgdawp_subh=${DATA}/PRSLEV.GrbF${fhr}.00
wgrib2 ${bgdawp} -not_if 'ave fcst' | grep -F -f ${FIX_UPP}/subh_fields.txt | wgrib2 -i -grib ${bgdawp_subh} ${bgdawp}

fhrm1tmp="$((10#$fhr-1))"
fhrm1=`printf "%02d\n" $fhrm1tmp`
# expect this will need to be changed due to future umbrella directory changes
tm15=${DATA}/../rrfs_post_${envir}_${cyc}_f0${fhrm1}-45-00/PRSLEV.GrbF${fhrm1}.45
tm30=${DATA}/../rrfs_post_${envir}_${cyc}_f0${fhrm1}-30-00/PRSLEV.GrbF${fhrm1}.30
tm45=${DATA}/../rrfs_post_${envir}_${cyc}_f0${fhrm1}-15-00/PRSLEV.GrbF${fhrm1}.15

looplim=30
loop=1
while [ $loop -le $looplim ]
do
if [ -e $tm15 -a -e $tm30 -a -e $tm45 ]
then
break
else
loop=$((loop+1))
sleep 20
fi
if [ $loop -ge $looplim ]
then
msg="FATAL ERROR: ABORTING after 10 minutes of waiting for old 15 minute UPP output $tm15 $tm30 $tm45"
err_exit $msg
fi
done

if [ -e $bgdawp_subh -a -e $tm15 -a -e $tm30 -a -e $tm45 ]
then
cat $tm45 $tm30 $tm15 $bgdawp_subh > PRSLEV.GrbF${fhr}_subh
wgrib2 PRSLEV.GrbF${fhr}_subh -set center 7 -grib $bgdawp_subh_combo >> $pgmout 2>> errfile
else
msg="FATAL ERROR: ABORTING due to missing 15 minute UPP output $bgdawp_subh $tm15 $tm30 $tm45"
err_exit $msg
fi
fi # SUB_GEN=1 test
fi # PRSLEV test

if [ -f NATLEV.GrbF${post_fhr} ]; then
wgrib2 NATLEV.GrbF${post_fhr} -set center 7 -grib ${bgrd3d} >>$pgmout 2>>errfile
fi
Expand Down
4 changes: 4 additions & 0 deletions scripts/exrrfs_prdgen.sh
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,7 @@ if [ ${DO_ENSFCST} = "TRUE" ]; then
testbed=${net4}.t${cyc}z.${mem_num}.testbed.${gridspacing}.f${fhr}.${gridname}.grib2
else
prslev=${net4}.t${cyc}z.prslev.${gridspacing}.f${fhr}.${gridname}.grib2
prslevsubh=${net4}.t${cyc}z.prslev.${gridspacing}.subh.f${fhr}.${gridname}.grib2
natlev=${net4}.t${cyc}z.natlev.${gridspacing}.f${fhr}.${gridname}.grib2
ififip=${net4}.t${cyc}z.ififip.${gridspacing}.f${fhr}.${gridname}.grib2
aviati=${net4}.t${cyc}z.aviati.${gridspacing}.f${fhr}.${gridname}.grib2
Expand Down Expand Up @@ -222,6 +223,9 @@ basetime=$( date +%y%j%H%M -d "${yyyymmdd} ${hh}" )
if [[ -f ${DATA}/${prslev} ]]; then
cp ${DATA}/${prslev} ${COMOUT}/${prslev}
fi
if [[ -f ${DATA}/${prslevsubh} ]]; then
cp ${DATA}/${prslevsubh} ${COMOUT}/${prslevsubh}
fi
if [[ -f ${DATA}/${natlev} ]]; then
cp ${DATA}/${natlev} ${COMOUT}/${natlev}
fi
Expand Down
4 changes: 4 additions & 0 deletions ush/config_defaults.sh
Original file line number Diff line number Diff line change
Expand Up @@ -583,6 +583,9 @@ WFLOW_LAUNCH_LOG_FN="log.launch_FV3LAM_wflow"
# POSTPROC_LONG_LEN_HRS:
# The length of long post process, in integer hours.
#
# POSTPROC_SUBH_LEN_HRS:
# The number of hours (integer) for which subhourly output is generated
#
# CYCL_HRS_HYB_FV3LAM_ENS:
# An array containing the hours of the day at which the GSI hybrid using
# FV3LAM ensemeble.
Expand Down Expand Up @@ -610,6 +613,7 @@ BOUNDARY_LONG_LEN_HRS="0"
BOUNDARY_PROC_GROUP_NUM="1"
POSTPROC_LEN_HRS="1"
POSTPROC_LONG_LEN_HRS="1"
POSTPROC_SUBH_LEN_HRS="0"
FCST_LEN_HRS="24"
FCST_LEN_HRS_SPINUP="1"
FCST_LEN_HRS_CYCLES=()
Expand Down
1 change: 1 addition & 0 deletions ush/generate_FV3LAM_wflow.sh
Original file line number Diff line number Diff line change
Expand Up @@ -443,6 +443,7 @@ settings="\
'boundary_long_len_hrs': ${BOUNDARY_LONG_LEN_HRS}
'postproc_len_hrs': ${POSTPROC_LEN_HRS}
'postproc_long_len_hrs': ${POSTPROC_LONG_LEN_HRS}
'postproc_subh_len_hrs': ${POSTPROC_SUBH_LEN_HRS}
'postproc_nsout_min': ${NSOUT_MIN}
'postproc_nfhmax_hrs': ${NFHMAX_HF}
'postproc_nfhout_hrs': ${NFHOUT}
Expand Down
1 change: 1 addition & 0 deletions ush/sample_configs/RRFS_A/config.sh_rrfs_a_n3
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ RESTART_INTERVAL_LONG="1 2 12 24 36 48"
## set up post
POSTPROC_LEN_HRS="18"
POSTPROC_LONG_LEN_HRS="60"
POSTPROC_SUBH_LEN_HRS="18"

# default
OUTPUT_FH="1 -1"
Expand Down

0 comments on commit 95d388e

Please sign in to comment.