Skip to content

Commit a72edf4

Browse files
Add domain level to wave gridded COM path (#3137)
This pull request addresses the organization of wave gridded products within the file structure. Currently, all wave gridded products are placed in products/wave/gridded, without any further categorization. To align with the structure used by other component products (such as grib2), this update introduces a domain/resolution directory level to group output more effectively. For example, instead of having all products in a single directory, the structure will now include specific directories based on domain and resolution (e.g., products/wave/gridded/arctic.9km, products/wave/gridded/global.0p16). This change improves organization and scalability for wave gridded product outputs. Resolves #2677
1 parent 01eeb24 commit a72edf4

16 files changed

+206
-125
lines changed

jobs/JGLOBAL_ARCHIVE

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
#! /usr/bin/env bash
22

33
source "${HOMEgfs}/ush/preamble.sh"
4-
source "${HOMEgfs}/ush/jjob_header.sh" -e "arch" -c "base arch"
5-
6-
4+
source "${HOMEgfs}/ush/jjob_header.sh" -e "arch" -c "base arch wave"
5+
source "${USHgfs}/wave_domain_grid.sh"
76
##############################################
87
# Set variables used in the script
98
##############################################
@@ -50,6 +49,23 @@ for grid in "0p25" "0p50" "1p00"; do
5049
"COMIN_ATMOS_GRIB_${grid}:COM_ATMOS_GRIB_GRID_TMPL"
5150
done
5251

52+
###############################################################
53+
# Create an array of output wave grids to process
54+
if [[ "${DO_WAVE}" == "YES" ]]; then
55+
# Create a variable for output wave grids to process
56+
if [[ -n "${wavepostGRD}" || -n "${waveinterpGRD}" ]]; then
57+
for grdID in ${wavepostGRD} ${waveinterpGRD}; do
58+
process_grdID "${grdID}"
59+
YMD=${PDY} HH=${cyc} GRDRESNAME=${grdNAME} declare_from_tmpl -rx \
60+
"COMIN_WAVE_GRID_${GRDREGION}_${GRDRES}:COM_WAVE_GRID_RES_TMPL"
61+
grids_arr+=("${GRDREGION}.${GRDRES}")
62+
done
63+
export WAVE_OUT_GRIDS="${grids_arr[*]}"
64+
else
65+
echo "Both wavepostGRD and waveinterpGRD are empty. No grids to process."
66+
export WAVE_OUT_GRIDS=""
67+
fi
68+
fi
5369
###############################################################
5470
# Run archive script
5571
###############################################################
@@ -69,7 +85,6 @@ if [[ -e "${pgmout}" ]] ; then
6985
cat "${pgmout}"
7086
fi
7187

72-
7388
##########################################
7489
# Remove the Temporary working directory
7590
##########################################

jobs/JGLOBAL_EXTRACTVARS

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
source "${HOMEgfs}/ush/preamble.sh"
44
source "${HOMEgfs}/ush/jjob_header.sh" -e "extractvars" -c "base extractvars"
5+
source "${USHgfs}/wave_domain_grid.sh"
56

67
# Set COM Paths
78
for grid in '0p25' '0p50' '1p00'; do
@@ -19,6 +20,10 @@ YMD="${PDY}" HH="${cyc}" declare_from_tmpl -rx \
1920
"COMIN_ICE_NETCDF:COM_ICE_NETCDF_TMPL" \
2021
"COMIN_WAVE_GRID:COM_WAVE_GRID_TMPL"
2122

23+
process_grdID "${waveGRD}"
24+
YMD=${PDY} HH=${cyc} GRDRESNAME=${grdNAME} declare_from_tmpl -rx \
25+
"COMIN_WAVE_GRID_${GRDREGION}_${GRDRES}:COM_WAVE_GRID_RES_TMPL"
26+
2227
if [[ "${DO_ATM}" == "YES" ]]; then
2328
if [[ ! -d "${ARC_RFCST_PROD_ATMOS_F2D}" ]]; then mkdir -p "${ARC_RFCST_PROD_ATMOS_F2D}"; fi
2429
if [[ ! -d "${ARC_RFCST_PROD_ATMOS_F3D}" ]]; then mkdir -p "${ARC_RFCST_PROD_ATMOS_F3D}"; fi

jobs/JGLOBAL_WAVE_GEMPAK

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,16 @@ YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \
1717
COMIN_WAVE_GRID:COM_WAVE_GRID_TMPL \
1818
COMOUT_WAVE_GEMPAK:COM_WAVE_GEMPAK_TMPL
1919

20+
if [[ -n "${GEMPAK_GRIDS}" ]]; then
21+
for grdID in ${GEMPAK_GRIDS}; do
22+
process_grdID "${grdID}"
23+
YMD=${PDY} HH=${cyc} GRDRESNAME=${grdNAME} declare_from_tmpl -rx \
24+
"COMIN_WAVE_GRID_${GRDREGION}_${GRDRES}:COM_WAVE_GRID_RES_TMPL"
25+
done
26+
else
27+
echo "waveinterpGRD is empty. No grids to process."
28+
fi
29+
2030
if [[ ! -d ${COMOUT_WAVE_GEMPAK} ]]; then mkdir -p "${COMOUT_WAVE_GEMPAK}"; fi
2131

2232
########################################################

jobs/JGLOBAL_WAVE_POST_SBS

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
source "${HOMEgfs}/ush/preamble.sh"
44
source "${HOMEgfs}/ush/jjob_header.sh" -e "wavepostsbs" -c "base wave wavepostsbs"
5+
source "${USHgfs}/wave_domain_grid.sh"
56

67
# Add default errchk = err_chk
78
export errchk=${errchk:-err_chk}
@@ -19,7 +20,18 @@ for out_dir in "${COMOUT_WAVE_PREP}" "${COMOUT_WAVE_GRID}"; do
1920
if [[ ! -d "${out_dir}" ]]; then mkdir -p "${out_dir}"; fi
2021
done
2122

22-
23+
if [[ -n "${wavepostGRD}" || -n "${waveinterpGRD}" ]]; then
24+
for grdID in ${wavepostGRD} ${waveinterpGRD}; do
25+
process_grdID "${grdID}"
26+
YMD=${PDY} HH=${cyc} GRDRESNAME=${grdNAME} declare_from_tmpl -rx \
27+
"COMOUT_WAVE_GRID_${GRDREGION}_${GRDRES}:COM_WAVE_GRID_RES_TMPL"
28+
out_dir_varname="COMOUT_WAVE_GRID_${GRDREGION}_${GRDRES}"
29+
out_dir=${!out_dir_varname}
30+
if [[ ! -d "${out_dir}" ]]; then mkdir -p "${out_dir}"; fi
31+
done
32+
else
33+
echo "Both wavepostGRD and waveinterpGRD are empty. No grids to process."
34+
fi
2335
# Set wave model ID tag to include member number
2436
# if ensemble; waveMEMB var empty in deterministic
2537
# Set wave model ID tag to include member number

jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
source "${HOMEgfs}/ush/preamble.sh"
44
source "${HOMEgfs}/ush/jjob_header.sh" -e "waveawipsgridded" -c "base wave waveawipsgridded"
5+
source "${USHgfs}/wave_domain_grid.sh"
56

67
# Add default errchk = err_chk
78
export errchk=${errchk:-err_chk}
@@ -19,6 +20,15 @@ YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \
1920

2021
if [[ ! -d ${COMOUT_WAVE_WMO} ]]; then mkdir -p "${COMOUT_WAVE_WMO}"; fi
2122

23+
if [[ -n "${GEMPAK_GRIDS}" ]]; then
24+
for grdID in ${GEMPAK_GRIDS}; do
25+
process_grdID "${grdID}"
26+
YMD=${PDY} HH=${cyc} GRDRESNAME=${grdNAME} declare_from_tmpl -rx \
27+
"COMIN_WAVE_GRID_${GRDREGION}_${GRDRES}:COM_WAVE_GRID_RES_TMPL"
28+
done
29+
else
30+
echo "GEMPAK_GRIDS are empty. No grids to process."
31+
fi
2232

2333
###################################
2434
# Execute the Script
@@ -35,6 +45,4 @@ if [ "${KEEPDATA}" != "YES" ]; then
3545
rm -rf ${DATA}
3646
fi
3747

38-
3948
exit 0
40-

parm/archive/gfswave.yaml.j2

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,31 @@
11
gfswave:
22
{% set head = "gfswave.t" + cycle_HH + "z." %}
3+
34
name: "GFSWAVE"
45
target: "{{ ATARDIR }}/{{ cycle_YMDH }}/gfswave.tar"
56
required:
67
# Wave GRIB2 regional forecast products
8+
{% set WAVE_OUT_GRIDS_list = WAVE_OUT_GRIDS.split(' ') %}
9+
{% for grd in WAVE_OUT_GRIDS_list %}
10+
{% set tmpl_dict = ({ '${ROTDIR}':ROTDIR,
11+
'${RUN}':RUN,
12+
'${YMD}':cycle_YMD,
13+
'${HH}':cycle_HH,
14+
'${MEMDIR}':'',
15+
'${GRDRESNAME}':grd}) %}
16+
{% set file_path = COM_WAVE_GRID_RES_TMPL | replace_tmpl(tmpl_dict) %}
17+
718
{% for fh in range(0, FHMAX_HF_WAV + FHOUT_HF_WAV, FHOUT_HF_WAV) %}
819
# NOTE This is as explicit as possible without major logic to parse wavepostGRD.
920
# Matches files of the form "gfswave.tCCz.<region>.<res>.fHHH.grib2".
10-
- "{{ COMIN_WAVE_GRID | relpath(ROTDIR) }}/{{ head }}*.*.f{{ '%03d' % fh }}.grib2"
11-
- "{{ COMIN_WAVE_GRID | relpath(ROTDIR) }}/{{ head }}*.*.f{{ '%03d' % fh }}.grib2.idx"
21+
- "{{ file_path | relpath(ROTDIR) }}/{{ head }}*.*.f{{ '%03d' % fh }}.grib2"
22+
- "{{ file_path | relpath(ROTDIR) }}/{{ head }}*.*.f{{ '%03d' % fh }}.grib2.idx"
1223
{% endfor %}
1324

1425
# Global wave GRIB2 forecast products
1526
{% for fh in range(FHMAX_HF_WAV + FHOUT_WAV, FHMAX_WAV_GFS + FHOUT_WAV, FHOUT_WAV) %}
16-
- "{{ COMIN_WAVE_GRID | relpath(ROTDIR) }}/{{ head }}*.*.f{{ '%03d' % fh }}.grib2"
17-
- "{{ COMIN_WAVE_GRID | relpath(ROTDIR) }}/{{ head }}*.*.f{{ '%03d' % fh }}.grib2.idx"
27+
- "{{ file_path | relpath(ROTDIR) }}/{{ head }}*.*.f{{ '%03d' % fh }}.grib2"
28+
- "{{ file_path | relpath(ROTDIR) }}/{{ head }}*.*.f{{ '%03d' % fh }}.grib2.idx"
1829
{% endfor %}
1930

2031
# Wave bulletins
@@ -28,3 +39,4 @@ gfswave:
2839
- "{{ COMIN_WAVE_STATION | relpath(ROTDIR) }}/{{ head }}ibpcbull_tar"
2940
- "{{ COMIN_WAVE_STATION | relpath(ROTDIR) }}/{{ head }}ibp_tar"
3041
{% endif %}
42+
{% endfor %}

parm/config/gfs/config.com

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ declare -rx COM_WAVE_RESTART_TMPL=${COM_BASE}'/model/wave/restart'
7474
declare -rx COM_WAVE_PREP_TMPL=${COM_BASE}'/model/wave/prep'
7575
declare -rx COM_WAVE_HISTORY_TMPL=${COM_BASE}'/model/wave/history'
7676
declare -rx COM_WAVE_GRID_TMPL=${COM_BASE}'/products/wave/gridded'
77+
declare -rx COM_WAVE_GRID_RES_TMPL=${COM_BASE}'/products/wave/gridded/${GRDRESNAME}'
7778
declare -rx COM_WAVE_STATION_TMPL=${COM_BASE}'/products/wave/station'
7879
declare -rx COM_WAVE_GEMPAK_TMPL=${COM_BASE}'/products/wave/gempak'
7980
declare -rx COM_WAVE_WMO_TMPL=${COM_BASE}'/products/wave/wmo'

parm/config/gfs/config.waveawipsgridded

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ echo "BEGIN: config.waveawipsgridded"
88
# Get task specific resources
99
. $EXPDIR/config.resources waveawipsgridded
1010

11+
export GEMPAK_GRIDS=${GEMPAK_GRIDS:-ak_10m at_10m ep_10m wc_10m glo_30m}
12+
# export GEMPAK_GRIDS=${GEMPAK_GRIDS:-ao_9km at_10m ep_10m wc_10m glo_30m}
1113
# AWIPS output frequency
1214
export FHMAX_HF_WAV_WMO=72
1315
export FHMAX_WAV_WMO=180

parm/config/gfs/config.wavegempak

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,7 @@ echo "BEGIN: config.wavegempak"
88
# Get task specific resources
99
. $EXPDIR/config.resources wavegempak
1010

11+
#export GEMPAK_GRIDS=${GEMPAK_GRIDS:-'glo_30m at_10m ep_10m wc_10m ao_9km'} #Interpolated grids
12+
export GEMPAK_GRIDS=${GEMPAK_GRIDS:-${waveinterpGRD:-'glo_30m'}}
1113

1214
echo "END: config.wavegempak"

scripts/exgfs_wave_nawips.sh

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@
1212
#####################################################################
1313

1414
source "${USHgfs}/preamble.sh"
15+
source "${USHgfs}/wave_domain_grid.sh"
1516

16-
#export grids=${grids:-'glo_30m at_10m ep_10m wc_10m ao_9km'} #Interpolated grids
17-
export grids=${grids:-${waveinterpGRD:-'glo_30m'}} #Native grids
17+
#export grids=${GEMPAK_GRIDS:-'glo_30m at_10m ep_10m wc_10m ao_9km'} #Interpolated grids
18+
export grids=${GEMPAK_GRIDS:-${waveinterpGRD:-'glo_30m'}} #Native grids
1819
export RUNwave=${RUNwave:-${RUN}wave}
1920
export fstart=${fstart:-0}
2021
export FHMAX_WAV=${FHMAX_WAV:-180} #180 Total of hours to process
@@ -73,7 +74,10 @@ while [ ${fhcnt} -le ${FHMAX_WAV} ]; do
7374
*) grdIDin=
7475
grdIDout= ;;
7576
esac
76-
GRIBIN="${COMIN_WAVE_GRID}/${RUNwave}.${cycle}.${grdIDin}.f${fhr}.grib2"
77+
process_grdID "${grid}"
78+
com_varname="COMIN_WAVE_GRID_${GRDREGION}_${GRDRES}"
79+
com_dir=${!com_varname}
80+
GRIBIN="${com_dir}/${RUNwave}.${cycle}.${grdIDin}.f${fhr}.grib2"
7781
GRIBIN_chk=${GRIBIN}.idx
7882
if ! wait_for_file "${GRIBIN_chk}" "${sleep_interval}" "${maxtries}"; then
7983
echo "FATAL ERROR: ${GRIBIN_chk} not found after waiting $((sleep_interval * ( maxtries - 1))) secs"

scripts/exgfs_wave_post_gridded_sbs.sh

Lines changed: 37 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
# 0. Preparations
3434

3535
source "${USHgfs}/preamble.sh"
36+
source "${USHgfs}/wave_domain_grid.sh"
3637

3738
# 0.a Basic modes of operation
3839

@@ -218,7 +219,6 @@ source "${USHgfs}/preamble.sh"
218219
echo ' Making command file for sbs grib2 and GRID Interpolation '
219220
set_trace
220221
fhr=$(( 10#${FHR3} ))
221-
fhrg=$fhr
222222
ymdh=$($NDATE $fhr ${PDY}${cyc})
223223
YMD=$(echo $ymdh | cut -c1-8)
224224
HMS="$(echo $ymdh | cut -c9-10)0000"
@@ -238,75 +238,41 @@ source "${USHgfs}/preamble.sh"
238238
export GRDIDATA=${DATA}/output_$YMDHMS
239239

240240
# Gridded data (main part, need to be run side-by-side with forecast
241+
gfile="${COMIN_WAVE_HISTORY}/${WAV_MOD_TAG}.out_grd.${waveGRD}.${YMD}.${HMS}"
242+
if [[ ! -s "${gfile}" ]]; then
243+
echo " FATAL ERROR : NO RAW FIELD OUTPUT FILE ${gfile}"
244+
err=3; export err; "${errchk}"
245+
exit "${err}"
246+
fi
247+
${NLN} "${gfile}" "./out_grd.${waveGRD}"
241248

242-
if [ $fhr = $fhrg ]
249+
if [ "$DOGRI_WAV" = 'YES' ]
243250
then
244-
gfile="${COMIN_WAVE_HISTORY}/${WAV_MOD_TAG}.out_grd.${waveGRD}.${YMD}.${HMS}"
245-
if [[ ! -s "${gfile}" ]]; then
246-
echo " FATAL ERROR : NO RAW FIELD OUTPUT FILE ${gfile}"
247-
err=3; export err; "${errchk}"
248-
exit "${err}"
249-
fi
250-
${NLN} "${gfile}" "./out_grd.${waveGRD}"
251-
252-
if [ "$DOGRI_WAV" = 'YES' ]
253-
then
254-
nigrd=1
255-
for grdID in $waveinterpGRD
256-
do
257-
ymdh_int=$($NDATE -${WAVHINDH} $ymdh); dt_int=3600.; n_int=9999 ;
258-
echo "${USHgfs}/wave_grid_interp_sbs.sh $grdID $ymdh_int $dt_int $n_int > grint_$grdID.out 2>&1" >> ${fcmdigrd}.${nigrd}
259-
if [ "$DOGRB_WAV" = 'YES' ]
260-
then
261-
gribFL=\'$(echo ${OUTPARS_WAV})\'
262-
case $grdID in
263-
glo_15mxt) GRDNAME='global' ; GRDRES=0p25 ; GRIDNR=255 ; MODNR=11 ;;
264-
reg025) GRDNAME='global' ; GRDRES=0p25 ; GRIDNR=255 ; MODNR=11 ;;
265-
glo_025) GRDNAME='global' ; GRDRES=0p25 ; GRIDNR=255 ; MODNR=11 ;;
266-
glo_100) GRDNAME='global' ; GRDRES=1p00 ; GRIDNR=255 ; MODNR=11 ;;
267-
glo_200) GRDNAME='global' ; GRDRES=2p00 ; GRIDNR=255 ; MODNR=11 ;;
268-
glo_500) GRDNAME='global' ; GRDRES=5p00 ; GRIDNR=255 ; MODNR=11 ;;
269-
glo_30mxt) GRDNAME='global' ; GRDRES=0p50 ; GRIDNR=255 ; MODNR=11 ;;
270-
glo_30m) GRDNAME='global' ; GRDRES=0p50 ; GRIDNR=255 ; MODNR=11 ;;
271-
at_10m) GRDNAME='atlocn' ; GRDRES=0p16 ; GRIDNR=255 ; MODNR=11 ;;
272-
ep_10m) GRDNAME='epacif' ; GRDRES=0p16 ; GRIDNR=255 ; MODNR=11 ;;
273-
wc_10m) GRDNAME='wcoast' ; GRDRES=0p16 ; GRIDNR=255 ; MODNR=11 ;;
274-
ak_10m) GRDNAME='alaska' ; GRDRES=0p16 ; GRIDNR=255 ; MODNR=11 ;;
275-
esac
276-
echo "${USHgfs}/wave_grib2_sbs.sh $grdID $GRIDNR $MODNR $ymdh $fhr $GRDNAME $GRDRES $gribFL > grib_$grdID.out 2>&1" >> ${fcmdigrd}.${nigrd}
277-
fi
278-
echo "${GRIBDATA}/${fcmdigrd}.${nigrd}" >> ${fcmdnow}
279-
chmod 744 ${fcmdigrd}.${nigrd}
280-
nigrd=$((nigrd+1))
281-
done
282-
fi
283-
284-
if [ "$DOGRB_WAV" = 'YES' ]
285-
then
286-
for grdID in ${wavepostGRD} # First concatenate grib files for sbs grids
287-
do
251+
nigrd=1
252+
for grdID in $waveinterpGRD
253+
do
254+
ymdh_int=$($NDATE -${WAVHINDH} $ymdh); dt_int=3600.; n_int=9999 ;
255+
echo "${USHgfs}/wave_grid_interp_sbs.sh $grdID $ymdh_int $dt_int $n_int > grint_$grdID.out 2>&1" >> ${fcmdigrd}.${nigrd}
256+
if [ "$DOGRB_WAV" = 'YES' ]
257+
then
288258
gribFL=\'$(echo ${OUTPARS_WAV})\'
289-
case $grdID in
290-
aoc_9km) GRDNAME='arctic' ; GRDRES=9km ; GRIDNR=255 ; MODNR=11 ;;
291-
ant_9km) GRDNAME='antarc' ; GRDRES=9km ; GRIDNR=255 ; MODNR=11 ;;
292-
glo_10m) GRDNAME='global' ; GRDRES=0p16 ; GRIDNR=255 ; MODNR=11 ;;
293-
gnh_10m) GRDNAME='global' ; GRDRES=0p16 ; GRIDNR=255 ; MODNR=11 ;;
294-
gsh_15m) GRDNAME='gsouth' ; GRDRES=0p25 ; GRIDNR=255 ; MODNR=11 ;;
295-
glo_15m) GRDNAME='global' ; GRDRES=0p25 ; GRIDNR=255 ; MODNR=11 ;;
296-
ao_20m) GRDNAME='arctic' ; GRDRES=0p33 ; GRIDNR=255 ; MODNR=11 ;;
297-
so_20m) GRDNAME='antarc' ; GRDRES=0p33 ; GRIDNR=255 ; MODNR=11 ;;
298-
glo_15mxt) GRDNAME='global' ; GRDRES=0p25 ; GRIDNR=255 ; MODNR=11 ;;
299-
reg025) GRDNAME='global' ; GRDRES=0p25 ; GRIDNR=255 ; MODNR=11 ;;
300-
glo_025) GRDNAME='global' ; GRDRES=0p25 ; GRIDNR=255 ; MODNR=11 ;;
301-
glo_100) GRDNAME='global' ; GRDRES=1p00 ; GRIDNR=255 ; MODNR=11 ;;
302-
glo_200) GRDNAME='global' ; GRDRES=2p00 ; GRIDNR=255 ; MODNR=11 ;;
303-
glo_500) GRDNAME='global' ; GRDRES=5p00 ; GRIDNR=255 ; MODNR=11 ;;
304-
gwes_30m) GRDNAME='global' ; GRDRES=0p50 ; GRIDNR=255 ; MODNR=10 ;;
305-
esac
306-
echo "${USHgfs}/wave_grib2_sbs.sh $grdID $GRIDNR $MODNR $ymdh $fhr $GRDNAME $GRDRES $gribFL > grib_$grdID.out 2>&1" >> ${fcmdnow}
307-
done
308-
fi
259+
process_grdID "${grdID}"
260+
echo "${USHgfs}/wave_grib2_sbs.sh $grdID $GRIDNR $MODNR $ymdh $fhr $GRDREGION $GRDRES $gribFL > grib_$grdID.out 2>&1" >> ${fcmdigrd}.${nigrd}
261+
fi
262+
echo "${GRIBDATA}/${fcmdigrd}.${nigrd}" >> ${fcmdnow}
263+
chmod 744 ${fcmdigrd}.${nigrd}
264+
nigrd=$((nigrd+1))
265+
done
266+
fi
309267

268+
if [ "$DOGRB_WAV" = 'YES' ]
269+
then
270+
for grdID in ${wavepostGRD} # First concatenate grib files for sbs grids
271+
do
272+
gribFL=\'$(echo ${OUTPARS_WAV})\'
273+
process_grdID "${grdID}"
274+
echo "${USHgfs}/wave_grib2_sbs.sh $grdID $GRIDNR $MODNR $ymdh $fhr $GRDREGION $GRDRES $gribFL > grib_$grdID.out 2>&1" >> ${fcmdnow}
275+
done
310276
fi
311277

312278
if [ ${CFP_MP:-"NO"} = "YES" ]; then
@@ -377,15 +343,14 @@ source "${USHgfs}/preamble.sh"
377343
rm -f out_grd.* # Remove large binary grid output files
378344

379345
cd $DATA
380-
381-
382-
if [ "$fhr" = "$fhrg" ]
383-
then
346+
384347
# Check if grib2 file created
385348
ENSTAG=""
349+
com_varname="COMOUT_WAVE_GRID_${GRDREGION}_${GRDRES}"
350+
com_dir=${!com_varname}
386351
if [ ${waveMEMB} ]; then ENSTAG=".${membTAG}${waveMEMB}" ; fi
387-
gribchk="${RUN}wave.${cycle}${ENSTAG}.${GRDNAME}.${GRDRES}.f${FH3}.grib2"
388-
if [ ! -s ${COMOUT_WAVE_GRID}/${gribchk} ]; then
352+
gribchk="${RUN}wave.${cycle}${ENSTAG}.${GRDREGION}.${GRDRES}.f${FH3}.grib2"
353+
if [ ! -s ${com_dir}/${gribchk} ]; then
389354
set +x
390355
echo ' '
391356
echo '********************************************'
@@ -397,7 +362,6 @@ source "${USHgfs}/preamble.sh"
397362
err=5; export err;${errchk}
398363
exit "$err"
399364
fi
400-
fi
401365

402366
# --------------------------------------------------------------------------- #
403367
# 7. Ending output

0 commit comments

Comments
 (0)